如何在同一个表(类别和子类别)上进行第一级和第二级聚合
这是我的资料
Name Category Sub-Category sum
yuew Food Snack 100
dhjs Food Snack 50
jdsd Food Drink 60
kjkd Food Drink 60
sjdbk Food Snack 70
ndkbjd Clothes Shirt 80
ndcb Clothes Trousers 80
dbkjd Clothes Shirt 90
我尝试编码
table_pivot = table.pivot_table(values='sum',index=['Category','Sub-Category'],aggfunc=np.sum)
这是结果,结果仅特定于每个子类别的总和
Category Sub Category Sum
Food Snack 220
Drink 120
Clothes Shirt 170
Trousers 80
我需要的结果不仅是每个子类别的总和,而且是类别级别的总和
Category Sub Category Sum
Food 340
Snack 220
Drink 120
Clothes 250
Shirt 170
Trousers 80
我应该怎么做
最佳答案
首先在每个级别上使用sum
,然后为原始和最后一个MultiIndex
创建append
,sort_index
:
df = table_pivot.sum(level=0)
df = df.set_index([df.index.values, [''] * len(df)])
print (df)
sum
Category Sub-Category
Clothes 250
Food 340
df = table_pivot.append(df).sort_index()
print (df)
sum
Category Sub-Category
Clothes 250
Shirt 170
Trousers 80
Food 340
Drink 120
Snack 220
关于python - 如何在同一张表上进行第一层和第二层聚合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54400697/