如何在熊猫中放置行.DataFrame基于特定列集中的值



从下面的数据框中,如何删除列[B, C, D]都为空的所有行?

输入数据帧:

A    B    C    D
0  20  NaN  2.0  NaN
1   3  1.0  NaN  2.0
2  44  4.0  NaN  NaN
3  67  NaN  NaN  NaN
4  52  3.0  2.0  NaN
5   8  NaN  NaN  NaN

期望输出:

A    B    C    D
0  20  NaN  2.0  NaN
1   3  1.0  NaN  2.0
2  44  4.0  NaN  NaN
4  52  3.0  2.0  NaN

让我们试试dropna

df=df.dropna(thresh=1)

就我个人而言,我会使用参数为howsubsetpandas.DataFrame.dropna()方法。代码如下。

>>> df = df.dropna(how='all', subset=['B', 'C', 'D'])
>>> print(df)
A    B    C    D
0  20  NaN  2.0  NaN
1   3  1.0  NaN  2.0
2  44  4.0  NaN  NaN
4  52  3.0  2.0  NaN

您可以计算列的子集中的(非NaN(值:

df[df[['B', 'C', 'D']].count(axis=1) > 0]

如预期:

A    B    C    D
0  20  NaN  2.0  NaN
1   3  1.0  NaN  2.0
2  44  4.0  NaN  NaN
4  52  3.0  2.0  NaN

并且只关注所需的列

最新更新