使用条件从pandas数据框中删除列

时间:2017-05-23 15:01:45

标签: python pandas

我有一个pandas dataframe df

selectValue

我想根据以下两个条件删除列(水果类型)

如果basket1,basket2和basket3中的水果总和小于20,则删除该列。在这种情况下的结果是

Fruit   Apple   Orange   Banana  Pear

basket1   0        1       10     15

basket2   1        5        7     10

basket3   10       15       0      0

在上面的结果中,如果含有> 0水果的篮子数小于3,我想进一步删除列。预期的结果是

Fruit    Orange   Pear
basket1   1       15
basket2   5       10
basket3   15      0

你能帮我写代码吗?我知道如何得到每个篮子里的每一个水果的总和为df.sum(轴= 0)。我无法从这一点开始。

1 个答案:

答案 0 :(得分:3)

您可以使用以下条件:

df.sum().gt(20)总和; df.gt(0).sum().ge(3)正数项目计算。

df = df.set_index('Fruit')

df
#        Apple  Orange  Banana  Pear
#Fruit              
#basket1     0       1      10    15
#basket2     1       5       7    10
#basket3    10      15       0     0

df.loc[:, df.sum().gt(20) & df.gt(0).sum().ge(3)]

#       Orange
#Fruit  
#basket1     1
#basket2     5
#basket3    15