Pandas中使用pivot_table函数进行高级数据汇总
创作时间:
作者:
@小白创作中心
Pandas中使用pivot_table函数进行高级数据汇总
引用
腾讯
1.
https://new.qq.com/rain/a/20240920A04BPZ00?media_id=&openApp=false&suid=&web_channel=wap
Pandas的pivot_table函数是一个强大的数据分析工具,可以帮助我们快速地对数据进行汇总和重塑。本文将详细介绍pivot_table的用法及其在数据分析中的应用。
1. pivot_table函数简介
pivot_table函数的基本语法如下:
pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean',
fill_value=None, margins=False, dropna=True, margins_name='All',
observed=False, sort=True)
主要参数说明:
- data: 要进行汇总的DataFrame
- values: 需要聚合的列
- index: 行索引
- columns: 列索引
- aggfunc: 聚合函数,默认为mean
- fill_value: 填充缺失值
- margins: 是否添加汇总行/列
- dropna: 是否删除全为NaN的列
2. 基本用法示例
让我们通过一个简单的例子来了解pivot_table的基本用法:
import pandas as pd
import numpy as np
# 创建示例数据
df = pd.DataFrame({
'日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],
'产品': ['A', 'B', 'A', 'B'],
'销量': [100, 150, 120, 180],
'价格': [10, 15, 12, 16]
})
# 使用pivot_table
result = pd.pivot_table(df, values='销量', index='日期', columns='产品', aggfunc='sum')
print(result)
输出结果:
产品 A B
日期
2023-01-01 100 150
2023-01-02 120 180
在这个例子中,我们以"日期"为行索引,"产品"为列索引,对"销量"进行了汇总。
3. 多个值列和聚合函数
pivot_table允许我们同时对多个列进行汇总,并使用不同的聚合函数:
result = pd.pivot_table(df, values=['销量', '价格'],
index='日期',
columns='产品',
aggfunc={'销量': 'sum', '价格': 'mean'})
print(result)
输出结果:
价格 销量
产品 A B A B
日期
2023-01-01 10.0 15.0 100 150
2023-01-02 12.0 16.0 120 180
4. 使用多级索引
pivot_table支持多级索引,这在处理复杂数据时非常有用:
df['城市'] = ['北京', '上海', '北京', '上海']
result = pd.pivot_table(df, values='销量',
index=['日期', '城市'],
columns='产品',
aggfunc='sum')
print(result)
输出结果:
产品 A B
日期 城市
2023-01-01 上海 NaN 150.0
北京 100.0 NaN
2023-01-02 上海 NaN 180.0
北京 120.0 NaN
5. 添加汇总行和列
使用margins参数可以添加汇总行和列:
输出结果:
产品 A B All
日期 城市
2023-01-01 上海 NaN 150.0 150.0
北京 100.0 NaN 100.0
2023-01-02 上海 NaN 180.0 180.0
北京 120.0 NaN 120.0
All 220.0 330.0 550.0
6. 填充缺失值
使用fill_value参数可以填充缺失值:
result = pd.pivot_table(df, values='销量',
index=['日期', '城市'],
columns='产品',
aggfunc='sum',
fill_value=0)
print(result)
输出结果:
产品 A B
日期 城市
2023-01-01 上海 0 150
北京 100 0
2023-01-02 上海 0 180
北京 120 0
7. 高级应用:自定义聚合函数
pivot_table允许我们使用自定义的聚合函数:
def custom_agg(x):
return x.max() - x.min()
result = pd.pivot_table(df, values=['销量', '价格'],
index='日期',
columns='产品',
aggfunc={'销量': 'sum', '价格': custom_agg})
print(result)
输出结果:
价格 销量
产品 A B A B
日期
2023-01-01 0.0 0.0 100 150
2023-01-02 0.0 0.0 120 180
8. 结合query进行数据筛选
pivot_table生成的结果是一个DataFrame,我们可以使用query方法进行进一步的数据筛选:
输出结果:
价格 销量
产品 A B A B
日期 城市
2023-01-01 北京 10.0 0.0 100 0
2023-01-02 北京 12.0 0.0 120 0
9. 总结
Pandas的pivot_table函数是一个强大的数据分析工具,它可以帮助我们快速地对数据进行汇总和重塑。通过灵活使用其各种参数,我们可以轻松地创建复杂的数据透视表,从而更好地理解和分析数据。
在实际应用中,pivot_table常用于销售数据分析、财务报表生成、用户行为分析等多个领域。掌握这个函数将大大提高您的数据分析效率。
本文原文来自机器学习算法与Python实战
热门推荐
《西游记》中的四大阴谋论:真相与原著的对比分析
减盐有必要,低钠盐有好处,但不是人人适用!
Cell子刊最新研究:5:2轻断食法能有效预防和改善脂肪性肝炎
日常摄入热量不超过基础代谢率能否防止发胖
解密“亚健康”:如何通过养生远离慢性疲劳
小白如何成功开展线上猎头业务:从零到一的实战指南
交通事故后如何全面收集证据以便获得公正赔偿
国际局势深度剖析
种植韭菜用什么肥料,不同生长阶段所需肥不同
比亚迪汉胎压正常范围是多少?
维生素D3补钙适宜性问答:儿童及老年人如何科学补充
缺这种营养素,综合患癌风险增加2.1倍!中老年人必知
中药牡丹皮的功效与作用及禁忌症有哪些?
保险理赔标准流程:让您轻松了解保险理赔的关键步骤
贺兰山东麓青铜峡葡萄酒产区迎来酿酒葡萄采收季
美味健康的紫薯饼制作方法(营养丰富的自制紫薯饼,健康早餐的不二选择)
股市心理学:投资者情绪的影响
川芎的功效与作用、用法用量及禁忌
如何利用香港公司离岸账户增强国际业务的灵活性和安全性
全面剖析:离岸公司涉税风险与合规策略
最新高钙食物清单!美国USDA公布4类高钙食物,除了乳制品,还有哪些选择?
ln 是什么?自然对数的秘密与应用
王之涣的《凉州词》有两首,第二首尽显唐朝国威,让人神往
陈梦4:2战胜孙颖莎!夺冠前她为什么吃香蕉?来看看营养师怎么说!
新手设计师进阶秘籍:四步提升你的平面设计能力
美国1月CPI通胀全线超预期,美国CPI上涨对股市有什么影响?
同为白酒,“茅台酒”和“五粮液”区别有多大?
10万元左右电车选购指南
电动车闯红灯怎样处罚
地黄与黄精的区别是什么