熊猫数据框中添加列GROUPBY
问题描述:
后,我有以下csv文件:熊猫数据框中添加列GROUPBY
type sku quantity country account
Order CHG-FOOD1COMP-CA 1 usa hch
Order CHG-FOOD2COMP-CA 1 usa hch
Order CHG-FOOD2COMP-CA 1 usa hch
Order CHG-FOOD1COMP-CA 1 usa hch
Order CHG-FOODCONT1-CA 1 usa hch
Order usa hch
Order Q7-QDH0-EBB5-CA 1 usa hch
Order CHG-FRY-12PT5-CA 1 usa hch
Order Q7-QDH0-EBB5-CA 1 usa hch
Order Q7-QDH0-EBB5-CA 1 usa hch
Order CHG-FRY-12PT5-CA 1 usa hch
Order CB-BB-CLR12-CA 1 usa hch
Order CB-BB-AMB12-CA 1 usa hch
Order usa hch
Order CB-BB-AMB12-CA 1 usa hch
Order CHG-FRY-12PT5-CA 1 usa hch
Order CB-BB-CLR12-CA 1 usa hch
Order CHG-FRY-12PT5-CA 1 usa hch
Order CHG-FOODCONT1-CA 1 usa hch
Refund CHG-FRY-9PT5-CA 1 usa hch
Order CHG-FOOD1COMP-CA 1 usa hch
我有以下的数据。我想要得到每个sku的总量。
SQL: Select sku sum(quantity) As TotalQty, country, account
From (usa_chc_Date.csv)
group by sku,...
我不介意先取之,然后添加那些总是在同一个国家/帐户列。 我的目的是将信息存储在这些csv中,以便它们很容易加载到django中,然后删除这些文件。 这就是我要找:
sku TotalQty country account
sku1 7 mx chc
sku3 4 mx chc
sku4 2 mx chc
sku5 1 mx chc
sku6 7 mx chc
sku7 9 mx chc
我也命名的文件,包括国家/帐户信息。我想我可以使用这个文件,并在保存模型时去掉国家和帐户。
备注 - 帐户不会更改,因为它们位于同一报告中。一旦他们被加载,他们skus可以有重复,但他们有不同的国家。
我尝试这样做:
df = df.groupby(['sku','quantity']).sum()
答
您使用了错误的colums pd.groupby
。
你的问题表明,“国家”和“账户”是所有“SKU”一样。在这种情况下,您应该使用:
df.groupby(['sku', 'country', 'account'], as_index=False).quantity.sum()
Out []:
sku country account quantity
0 CB-BB-AMB12-CA usa hch 2
1 CB-BB-CLR12-CA usa hch 2
2 CHG-FOOD1COMP-CA usa hch 3
3 CHG-FOOD2COMP-CA usa hch 2
4 CHG-FOODCONT1-CA usa hch 2
5 CHG-FRY-12PT5-CA usa hch 4
6 CHG-FRY-9PT5-CA usa hch 1
7 Q7-QDH0-EBB5-CA usa hch 3
注意:我从您的示例中删除了没有“sku”和“数量”的两行。它应该处理这些情况,只是在评论。
+0
我试过了,它返回所有列,你在哪里权的建议,我也希望增加头部后面,因为它不会在CSV显示。 –
答
df = df.groupby(['sku','Country','Account'],as_index=True)['actual sales'].sum()
df = df.reset_index()
df.rename(columns={0:'count'}, inplace=True)
我为我的便利改变了列名,否则不相关的
凡在数据品牌/国家列?目前还不清楚你想要提供的样本数据。 –
@Andrew我改变了我的问题Acconnt和品牌是一样的,对不起。我希望它更清楚一点。我正在尝试每sku总数。所以如果SKU1出现了7个订单,而其中的2个订单每个都有2个,其余的有1个,TotalQty将会是9,并且该行将是:sku |总计|国家|账户 –