[Python办公]Pandas创建透视表入门
Pandas 的 pivot_table 是一个用于数据透视的强大工具,它允许你根据一个或多个键对数据进行分组,然后对每个组进行聚合计算。透视表是一种数据汇总工具,常用于数据分析、报告生成和探索性数据分析。
基本用法
pivot_table 的基本用法包括以下几个参数:
- data: 要进行分析的 DataFrame,即要透视的数据。
- values: 要聚合的列名或列名列表(即多个列名)。
- index: 行索引的列名或列名列表。
- columns: 列索引的列名或列名列表。
- aggfunc: 聚合函数,可以是预定义的函数名(如 ‘mean’, ‘sum’, ‘count’ 等),也可以是自定义的函数。
示例
假设我们有一个 DataFrame df,其中包含员工的信息,包括部门、职位和薪资。我们想要创建一个透视表,按部门和职位对薪资进行求和。
import pandas as pd
# 创建一个示例 DataFrame
data = {
'部门': ['A', 'A', 'B', 'B'],
'职位': ['经理', '开发', '经理', '开发'],
'薪资': [500, 600, 700, 800],
'性别': ['男', '女', '男', '女']
}
# 将数据转化为pandas的dataframe
df = pd.DataFrame(data)
pivot_table = pd.pivot_table(
df,
values='薪资',
index='部门',
columns='职位',
aggfunc='sum'
)
print(f'原始df;\n{df}')
print(f'透视结果;\n{pivot_table}')
这将创建一个透视表,其中行索引是部门,列索引是职位,每个单元格的值是对应部门和职位的薪资总和。
运行结果:
高级用法
pivot_table 还支持更多高级功能,例如:
- margins: 设置为 True 时,会在透视表的底部和右侧添加总计行和列。
- fill_value: 用于替换 NaN 值的值。
- dropna: 设置为 False 时,即使某些组合没有数据,也会在透视表中保留对应的行和列。
注意事项
- 当 index 和 columns 中有多个列时,透视表将根据这些列的组合进行数据分组。
- 如果 values 是一个列表,透视表将为每个指定的列分别计算聚合值。
- aggfunc 可以是单个函数,也可以是函数的字典,用于对不同列应用不同的聚合函数。