pandas :删除所有列中的所有NaN值
问题描述
我有一个包含许多空记录的数据框:
Col_1 Col_2 Col_3
10 5 2
22 7 7
3 9 5
4 NaN NaN
5 NaN NaN
6 4 NaN
7 6 7
8 10 NaN
12 NaN 1
我希望删除列的所有行中的所有NaN值。如您所见,每列具有不同的行数。所以,我想要这样的东西:
Col_1 Col_2 Col_3
10 5 2
22 7 7
3 9 5
4 4 7
6 6 1
7 10
8
12
我试过
filtered_df = df.dropna(how='any')
但它会删除数据帧中的所有记录。我可以如何做到这一点?
解决方案
DataFrame是一种表格数据结构:您可以查找索引和列,并找到值。如果每列的行数不同,那么索引就没有意义并且具有误导性。A如您所见,每列的行数不同。
dict
可能是更好的替代方案:
{c: df[c].dropna().values for c in df.columns}
或
{c: list(df[c]) for c in df.columns}
相关文章