我有一个包含太多列的 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
内部条件的输出:
In [175]:
df.isin([0,1]).all()
Out[175]:
a True
b False
c False
dtype: bool
我们可以使用 bool 掩码来过滤列:
In [176]:
df.columns[df.isin([0,1]).all()]
Out[176]:
Index(['a'], dtype='object')
关于python - 按行中的值选择 Pandas 数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32350114/