pandas :删除所有列中的所有NaN值

2022-04-14 00:00:00 python pandas dataframe 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是一种表格数据结构:您可以查找索引和列,并找到值。如果每列的行数不同,那么索引就没有意义并且具有误导性。Adict可能是更好的替代方案:

{c: df[c].dropna().values for c in df.columns}

{c: list(df[c]) for c in df.columns}

相关文章