我有以下csv文件:
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()
答案 0 :(得分:1)
您在错误的列上使用pd.groupby
。
你的问题表明" country"和"帐户"所有" 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"也不是"数量"。这些案件应该处理,只是说是评论。
答案 1 :(得分:0)
df = df.groupby(['sku','Country','Account'],as_index=True)['actual sales'].sum()
df = df.reset_index()
df.rename(columns={0:'count'}, inplace=True)
为方便起见,我更改了列名,否则无关