微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何排除缺少列且具有特定值的列的条件?

如何解决如何排除缺少列且具有特定值的列的条件?

这是东西,我有一个名为df的数据框,看起来像这样:

id        value
NaN       10
NaN       0
ATT       0
ARS       0
ABB       10

我想排除id缺失且值等于零的所有行。

我想要这个:

id        value
NaN       10
ATT       0
ARS       0
ABB       10

我尝试过:

df[pd.isna(df['id']) & df['value']==0]

但是它不起作用,并且排除了超出要求的行。

解决方法

您需要更改(反转逻辑)-选择没有NaN或没有0的所有行,这也是因为优先级运算符为第二个条件添加了()

df = df[df['id'].notna() | (df['value']!=0)]
print (df)
    id  value
0  NaN     10
2  ATT      0
3  ARS      0
4  ABB     10

或使用Series.ne,则不必使用()

df = df[df['id'].notna() | df['value'].ne(0)]
print (df)
    id  value
0  NaN     10
2  ATT      0
3  ARS      0
4  ABB     10

或者可以反转原始蒙版:

df = df[~(df['id'].isna() & (df['value']==0))]
print (df)
    id  value
0  NaN     10
2  ATT      0
3  ARS      0
4  ABB     10

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。