根据不同的行对值进行分组和求和



我有一个看起来像这样的数据集:

store      itemId       numberOfItemsSold
Berlin     1            78
Amsterdam  3            12
Berlin     2            31
Amsterdam  1            12
Berlin     1            90

我想创建一个数据集或字典,这样我就可以积累关于每个不同商店售出多少件商品的信息。例如,在柏林,itemId=1的商品售出了78+90件。然后,售出了31件商品,其中itemId=2。

如何为每个不同的产品(itemId(提取每个商店的此类信息?

您可以使用groupby((来完成此操作,这将提供一个DataFrame:

summary_df = df.groupby(['store', 'itemId']).sum()

如果你想要一本字典:

summary_dict = dict(zip(summary_df.index, summary_df.numberOfItemsSold))

pd.DataSet.groupby()适用于您吗?

pd.DataFrame(
[["Berlin", 1, 78],
["Amsterdam",3, 12],
["Berlin",2, 31],
["Amsterdam", 1,12],
["Berlin", 1, 90]], 
columns=["store", "itemId", "numberOfItemsSold"]).groupby(['store', 'itemId']).sum().reset_index()

输出:

store   itemId  numberOfItemsSold
0   Amsterdam   1   12
1   Amsterdam   3   12
2   Berlin  1   168
3   Berlin  2   31

最新更新