[英]How to set values for particular cells in pandas.Dataframe correctly?
[英]How to drop rows in pandas.DataFrame based on values in particular set of columns?
从下面的数据框中,如何删除列[B, C, D]
都具有 null 值的所有行?
输入数据框:
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
所需的 output:
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)
您可以计算列子集的(非 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
并且只关注所需的列
就个人而言,我会使用pandas.DataFrame.dropna()
方法及其参数how
和subset
。 代码如下。
>>> 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.