如何选择仅具有正值的列?

时间:2018-09-03 11:31:01

标签: python pandas

给定pandas数据框df,我需要选择仅具有正值的列。

df =
  Age    Fare     Dev
  21     10        -1
  35     9        0
  28     12       1

我的第一个想法是使用df.describe(),然后仅选择那些最小值大于或等于0的列。 但是我坚持执行。显然row.columns不起作用,因为Series不具有columns属性。

properties = df.describe()
positive_cols = []
for index,row in properties.iterrows():
    for col in row.columns:
        print(col)

1 个答案:

答案 0 :(得分:2)

使用ge>=)进行比较DataFrame。然后使用all到所有True的布尔掩码,最后使用loc,因为过滤列:

df = df.loc[:, df.ge(0).all()]
print (df)
   Age  Fare
0   21    10
1   35     9
2   28    12

详细信息

print (df.ge(0))
    Age  Fare    Dev
0  True  True  False
1  True  True  False
2  True  True   True

print (df.ge(0).all())
Age      True
Fare     True
Dev     False
dtype: bool