Python pandas 数据透视表详解
在数据分析中,经常需要对数据进行多维度汇总、分组统计,例如按地区和产品类型统计销售额。pandas 的 pivot_table(数据透视表)能以直观的表格形式展示多维度聚合结果,比 groupby 更灵活,比手动拼接更高效。
一、什么是数据透视表?
数据透视表(Pivot Table)是一种交互式表格,可以动态地改变数据的布局,从多个维度对数据进行汇总、统计和分析。在 pandas 中,pivot_table 是实现这一功能的核心函数,其优势在于:
- 多维度聚合:同时按行(
index)和列(columns)分组,结果更直观; - 灵活的聚合方式:支持求和、均值、计数等多种聚合函数(
aggfunc),还能同时应用多个函数; - 自动处理缺失值:可通过
fill_value填充空值,让结果更整洁; - 支持总计:通过
margins参数快速添加行/列总计,方便全局分析。
二、基础准备
1. 安装 pandas
pip install pandas
2. 导入库与准备数据
本文用一份模拟的销售数据作为示例,包含'日期、地区、产品、销售额、利润'5 个字段:
import pandas as pd
import numpy as np
# 生成示例数据(100 条销售记录)
np.random.seed(42)
dates = pd.date_range(start="2023-01-01", end="2023-12-31", periods=100)
regions = ["华东","华北","华南","西部"]
products = ["A 产品","B 产品","C 产品"]
data = {
"日期": dates,
"地区": np.random.choice(regions, size=100),
"产品": np.random.choice(products, size=100),
"销售额": np.random.randint(1000, 10000, size=100),
"利润": np.random.randint(, , size=)
}
df = pd.DataFrame(data)
(df.head())


