【发布时间】:2022-01-06 20:00:22
【问题描述】:
我想计算这个数据集的小计:
Country Channel Genre Size Prev
UK Partners Blues 25 20
UK Stores Blues 15 10
UK Stores Rock 35 30
US Stores Rock 45 40
UK Partners Rock 55 50
US Partners Rock 65 60
UK Stores Blues 5 2
This solution 计算小计,但我需要对每个级别进行不同的排序。具体来说:
>>> columns = ['Country', 'Channel', 'Genre']
>>> sort = {'Country': 'Country', 'Channel': 'Size', 'Genre': 'Prev'}
>>> subtotal(data, columns, agg='sum', sort=sort)
Country Channel Genre Size Prev
0 UK Stores Blues 20 12
1 UK Stores Rock 35 30
2 UK Stores 55 42
3 UK Partners Blues 25 20
4 UK Partners Rock 55 50
5 UK Partners 80 70
6 UK 135 112
7 US Stores Rock 45 40
8 US Stores 45 40
9 US Partners Rock 65 60
10 US Partners 65 60
11 US 110 100
12 245 212
在这个:
- “国家/地区”列按国家/地区名称升序排序(英国在美国之前)
- “渠道”列按大小升序排序(在国家/地区内)(英国商店 = 55,然后英国合作伙伴 = 80)
- “流派”列按 Prev 升序排序(在 Country 和 Genre 内)(UK Stores Blues = 20,UK Stores Rock = 35)
我们怎样才能有效地做到这一点?
【问题讨论】:
标签: python pandas pandas-groupby pivot-table