strawberrylatte:
私は私がこれらのコードを使用してみましたが、それは代わりに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
少なくとも一つの試合で行を取得、その後と-これだけ削除0
によって行をDataFrame.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