输入中有一个pandas数据框:
store_id item_id items_sold date
1 1 0 2015-12-28
1 2 1 2015-12-28
1 1 0 2015-12-28
2 2 0 2015-12-28
2 1 1 2015-12-29
2 2 1 2015-12-29
2 1 0 2015-12-29
3 1 0 2015-12-30
3 1 0 2015-12-30
我需要删除所有在特定商店中从未销售的商品的行:数据框中的(store_id,item_id)对(1,1),(3,1)
我期待的输出如下:
store_id item_id items_sold date
1 2 1 2015-12-28
2 2 0 2015-12-28
2 1 1 2015-12-29
2 2 1 2015-12-29
2 1 0 2015-12-29
我已经找到了如何使用(store_id, item_id)
查找所需的pd.groupby()[].sum()
对,但坚持从初始数据框中删除它们
答案 0 :(得分:6)
是你想要的吗?
In [30]: df[df.groupby(['store_id', 'item_id'])['items_sold'].transform('sum') > 0]
Out[30]:
store_id item_id items_sold date
1 1 2 1 2015-12-28
3 2 2 0 2015-12-28
4 2 1 1 2015-12-29
5 2 2 1 2015-12-29
6 2 1 0 2015-12-29