我有一个pandas.DataFrame
列太多。我想选择行中的值等于的所有列0
and 1
。所有列的类型是int64
我无法通过以下方式选择它们object
或其他类型。我怎样才能做到这一点?
IIUC 然后你可以使用isin http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.isin.html#pandas.DataFrame.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
我们可以使用布尔掩码来过滤列:
In [176]:
df.columns[df.isin([0,1]).all()]
Out[176]:
Index(['a'], dtype='object')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)