Pandas创建透视表教程

本文介绍如何使用Pandas创建透视表(交叉表)。

透视表语法

pd.pivot_table(df, values='col1', index='col2', columns='col3', aggfunc='sum')

下面通过示例进行说明。

创建透视表并进行数据汇总

首先创建示例数据:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'position': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'],
                   'points': [4, 4, 6, 8, 9, 5, 5, 12]})

#view DataFrame
print(df)


#   team position  points
# 0    A        G       4
# 1    A        G       4
# 2    A        F       6
# 3    A        F       8
# 4    B        G       9
# 5    B        F       5
# 6    B        F       5
# 7    B        F      12

下面创建透视表,按team和position汇总points值:

#create pivot table
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position', aggfunc='sum')

#view pivot table
print(df_pivot)

# position   F  G
# team           
# A         14  8
# B         22  9

从输出结果可以看到:

  • A组F位置运动员总分为14
  • A组G位置运动员总分为8
  • B组F位置运动员总分为22
  • B组G位置运动员总分为9

另外还可以通过margins参数进行透视表的边缘计算:

#create pivot table with margins
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position',
                          aggfunc='sum', margins=True, margins_name='Sum')

#view pivot table
print(df_pivot)

position   F   G  Sum
team                 
A         14   8   22
B         22   9   31
Sum       36  17   53

从结果可以看到分别增加行和列的求和。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值