我有一个DataFrame,如下所示:
shop | item_price | item_sold
A | 123 | 1
B | 921 | 2
A | 28 | 4
...
我想找到每个商店的总收入。在SQL中,它看起来像这样:
SELECT shop, SUM((item_price * item_sold)) as revenue
FROM table
GROUP BY shop
我想在Python中使用Pandas做到这一点。我试过了:
revenue_by_shop = table.groupby("shop")[table["item_price"] * table["item_sold"]].sum()
但这似乎不是正确的答案。
您可以将多个值Series
传递给groupby Series并传递给groupby Series table["shop"]
:
df = ((table["item_price"] * table["item_sold"])
.groupby(table["shop"])
.sum()
.reset_index(name='revenue'))
或创建新列,DataFrame.assign
并将列名传递shop
给groupby
:
df = (table.assign(revenue = table["item_price"] * table["item_sold"])
.groupby("shop", as_index=False)['revenue']
.sum())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句