这是一个创建于 1451 天前的主题,其中的信息可能已经有所发展或是发生改变。
今天番茄加速为大家分享几个 pivot_table 使用小技巧。
使用 df_melt 演示不出聚合的功能:
zip_code variable value
0 12345 factory 100
1 56789 factory 400
2 101112 factory 500
3 131415 factory 600
4 12345 retail 1
5 56789 retail 2
6 101112 retail 3
7 131415 retail 4
因为 zip_code + variable 的组合都是唯一的,因此转化一步,df_melt 基础上再 append 它:
In [77]: dfa = df_melt2.append(df_melt2)
数据变为:
zip_code variable value
0 12345 factory 100
1 56789 factory 400
2 101112 factory 500
3 131415 factory 600
4 12345 retail 1
5 56789 retail 2
6 101112 retail 3
7 131415 retail 4
0 12345 factory 100
1 56789 factory 400
2 101112 factory 500
3 131415 factory 600
4 12345 retail 1
5 56789 retail 2
6 101112 retail 3
7 131415 retail 4
此时前两列组合存在重复项,能够演示出聚合的效果:
dfa.pivot_table(index='zip_code',columns='variable',aggfunc=np.sum)
index 设定第一个维度:zip_code,columns 设定第二个维度为 variable,使用 aggfunc 参数做聚合,也就是存在 zip_code + variable 重复项时,两项 np.sum 累加,透视结果如下:
value
variable factory retail
zip_code
12345 200 2
56789 800 4
101112 1000 6
131415 1200 8
表格本质是二维结构,透视是变换二维表结构的艺术,掌握以上 3 个小技巧后,再去透视数据可能就会变得游刃有余一点。