我有一个如下所示的df:
df
a b c d
0 1 0 0 1
1 1 1 0 1
2 0 1 1 1
3 1 0 0 1
我尝试获取列数大于2的df,但是找不到解决方案。它应该看起来像这样:
a d
0 1 1
1 1 1
2 0 1
3 1 1
答案 0 :(得分:2)
如果只有1
,并且0
的值与DataFrame.loc
一起使用boolean indexing
,则第一个:
用于匹配所有行:
df = df.loc[:, df.sum() > 2]
print (df)
a d
0 1 1
1 1 1
2 0 1
3 1 1
详细信息:
print (df.sum())
a 3
b 2
c 1
d 4
dtype: int64
print (df.sum() > 2)
a True
b False
c False
d True
dtype: bool
如果可能的话,其他值也只需计数1
:
df = df.loc[:, df.eq(1).sum() > 2]