鉴于以下Dataframe,我试图获取一个排除所有值为1的行的数据框
columns a b c d e f g h i
index
foo 1 0 0 1 1 0 0 1 1
bar 1 1 1 1 1 1 1 1 1
bas 0 1 1 1 1 0 1 1 1
qux 0 1 0 1 1 0 0 0 0
因此,从上面我们应该得到一个不包含bar行的数据框。
columns a b c d e f g h i
index
foo 1 0 0 1 1 0 0 1 1
bas 0 1 1 1 1 0 1 1 1
qux 0 1 0 1 1 0 0 0 0
我想知道是否有像df.dropna这样的东西但是有价值。
df.drop('行包含所有1',轴= 0)
答案 0 :(得分:3)
我使用==
和~all()
:
>>> df
a b c d e f g h i
foo 1 0 0 1 1 0 0 1 1
bar 1 1 1 1 1 1 1 1 1
bas 0 1 1 1 1 0 1 1 1
qux 0 1 0 1 1 0 0 0 0
>>> (df == 1).all(axis=1)
foo False
bar True
bas False
qux False
dtype: bool
>>> df[~(df == 1).all(axis=1)]
a b c d e f g h i
foo 1 0 0 1 1 0 0 1 1
bas 0 1 1 1 1 0 1 1 1
qux 0 1 0 1 1 0 0 0 0
请注意,我们也可以简单地编写df[~df.all(axis=1)]
,因为您只使用0和1。