我有pandas.DataFrame太多的列。我想选择行中值等于0和的所有列1。所有列的类型是int64,我无法按object或其他类型选择它们。我怎样才能做到这一点?
IIUC 然后你可以使用isin和过滤列:
In [169]:
df = pd.DataFrame({'a':[0,1,1,0], 'b':list('abcd'), 'c':[1,2,3,4]})
df
Out[169]:
a b c
0 0 a 1
1 1 b 2
2 1 c 3
3 0 d 4
In [174]:
df[df.columns[df.isin([0,1]).all()]]
Out[174]:
a
0 0
1 1
2 1
3 0
Run Code Online (Sandbox Code Playgroud)
内部条件的输出:
In [175]:
df.isin([0,1]).all()
Out[175]:
a True
b False
c False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
我们可以使用布尔掩码来过滤列:
In [176]:
df.columns[df.isin([0,1]).all()]
Out[176]:
Index(['a'], dtype='object')
Run Code Online (Sandbox Code Playgroud)