如何解决如何排除缺少列且具有特定值的列的条件?
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 举报,一经查实,本站将立刻删除。