我的DataFrame中有一些列,其值分别为0和1
name a b c d e
0 one 1 0 1 0 0
1 two 0 0 1 0 0
2 three 0 0 1 0 1
如何选择至少一个值为1的列?但是也必须选择其他列(它们是字符串,或者不仅包含0和1的值)。
我尝试过此表达式
df.iloc[:, [(clm == 'name') | (1 in df[clm].unique()) for clm in df.columns]]
Out:
name a c e
0 one 1 1 0
1 two 0 1 0
2 three 0 1 1
但是似乎不好,因为我明确选择了列'名称'
如果可能,请删除仅具有0
值的所有列,将值与DataFrame.ne
进行比较,以得出不相等的值,并在DataFrame.ne
中每列返回至少一个True
:
DataFrame.loc
详细信息:
DataFrame.loc