gpt4 book ai didi

python - 仅当所有列都包含 0 时才删除该行

转载 作者:行者123 更新时间:2023-12-01 21:14:21 27 4
gpt4 key购买 nike

我试图删除所有 3 列中包含 0 的行,我尝试使用这些代码,但它删除了 3 列中任一列中包含 0 的所有行。

indexNames = news[ news['contain1']&news['contain2'] &news['contain3']== 0 ].index
news.drop(indexNames , inplace=True)

我的 CSV 文件

contain1  contain2  contain3
1 0 0
0 0 0
0 1 1
1 0 1
0 0 0
1 1 1

使用我使用的代码,我的所有行都将被删除。下面是我想要的结果

contain1  contain2  contain3
1 0 0
0 1 1
1 0 1
1 1 1

最佳答案

首先按DataFrame.ne过滤不等于 0 ,然后获取至少有一个匹配项的行 - 因此仅删除了 0DataFrame.any :

df = news[news.ne(0).any(axis=1)]
#cols = ['contain1','contain2','contain3']
#if necessary filter only columns by list
#df = news[news[cols].ne(0).any(axis=1)]
print (df)
contain1 contain2 contain3
0 1 0 0
2 0 1 1
3 1 0 1
5 1 1 1

详细信息:

print (news.ne(0))
contain1 contain2 contain3
0 True False False
1 False False False
2 False True True
3 True False True
4 False False False
5 True True True

print (news.ne(0).any(axis=1))
0 True
1 False
2 True
3 True
4 False
5 True
dtype: bool

关于python - 仅当所有列都包含 0 时才删除该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60881892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com