我有一个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)。我无法从这一点开始。
答案 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