按行中的值选择熊猫数据框中的列

Gil*_*tam 4 python pandas

我有pandas.DataFrame太多的列。我想选择行中值等于0和的所有列1。所有列的类型是int64,我无法按object或其他类型选择它们。我怎样才能做到这一点?

EdC*_*ica 5

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)