我有以下称为df的数据框。
有时看起来像这样(每个值都是唯一的)
key value1 value2 value3
0 key1 value value value
1 key2 value value value
有时value3
的整个列都用破折号填充:'-'
。
key value1 value2 value3
0 key1 value value -
1 key2 value value -
我想找到一个命令,如果该列中的所有项目都破折号,它将删除列value3。
我尝试使用df['value3'].any()
,但返回'-'
。
做我想要的事情是正确的方法吗?
if df['value3'].any() == '-':
df = df.drop['value3']
还是有更好的方法?
答案 0 :(得分:2)
使用
>>> df.loc[:, ~df.eq('-').all()]
key value1 value2
0 key1 value value
1 key2 value value
答案 1 :(得分:1)
比较不等于DataFrame.ne
,然后在DataFrame.any
中得到所有匹配的列,boolean indexing
:
print (df.loc[:, df.ne('-').any()])
key value1 value2
0 key1 value value
1 key2 value value