网易首页 > 网易号 > 正文 申请入驻

Pandas中使用pivot_table函数进行高级数据汇总

0
分享至

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参数可以添加汇总行和列:

result = pd.pivot_table(df, values='销量', 
                        index=['日期', '城市'], 
                        columns='产品', 
                        aggfunc='sum', 
                        margins=True)
print(result)

输出结果:

产品                 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方法进行进一步的数据筛选:

result = pd.pivot_table(df, values=['销量', '价格'], 
                        index=['日期', '城市'], 
                        columns='产品', 
                        aggfunc='sum')

filtered_result = result.query('城市 == "北京"')
print(filtered_result)

输出结果:

                价格     销量    
产品               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常用于销售数据分析、财务报表生成、用户行为分析等多个领域。掌握这个函数将大大提高您的数据分析效率。

参考资料:

  1. Pandas官方文档 - pivot_table

  2. Practical Business Python - Pandas Pivot Table Explained

  3. Spark By Examples - Pandas Pivot Table Explained with Examples


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
难怪990000也被疯抢!超仿生机器人这身材和功能,谁能抵抗得了?

难怪990000也被疯抢!超仿生机器人这身材和功能,谁能抵抗得了?

呼呼历史论
2026-07-02 03:26:31
巴西评论员:安帅思维领先常人,卡塞米罗和马丁内利用得好

巴西评论员:安帅思维领先常人,卡塞米罗和马丁内利用得好

懂球帝
2026-07-01 16:20:23
哈兰德:晋级16强的感觉难以置信;接下来每场对我们都是额外奖励

哈兰德:晋级16强的感觉难以置信;接下来每场对我们都是额外奖励

懂球帝
2026-07-02 03:05:09
清华院系毕业照连续两年同一孩童坐C位,面对公众疑问不应以沉默回避

清华院系毕业照连续两年同一孩童坐C位,面对公众疑问不应以沉默回避

极目新闻
2026-07-02 10:09:18
外媒:巴黎已谈妥迪奥曼德,但不愿支付高昂转会费

外媒:巴黎已谈妥迪奥曼德,但不愿支付高昂转会费

懂球帝
2026-07-02 12:19:28
伊朗只是前菜?以色列战后复盘发现:真正的大敌已上位,非常难啃

伊朗只是前菜?以色列战后复盘发现:真正的大敌已上位,非常难啃

阿芒娱乐说
2026-07-01 17:26:57
美国大满贯冷门不断,日本连赢四场,全是3-0,锁定一张八强门票

美国大满贯冷门不断,日本连赢四场,全是3-0,锁定一张八强门票

野渡舟山人
2026-07-01 16:53:11
世界杯夺冠概率如何,法国居首,阿根廷恐难卫冕,西班牙也有机会

世界杯夺冠概率如何,法国居首,阿根廷恐难卫冕,西班牙也有机会

刘哥谈体育
2026-07-02 12:54:09
被传复婚带娃仅1个月,好友爆赵丽颖真实现状,冯绍峰当初没撒谎

被传复婚带娃仅1个月,好友爆赵丽颖真实现状,冯绍峰当初没撒谎

二大爷观世界
2026-07-02 12:23:05
丢脸丢到世界杯!阿森纳水货坑惨英格兰,开场直接送大礼!

丢脸丢到世界杯!阿森纳水货坑惨英格兰,开场直接送大礼!

澜归序
2026-07-02 03:08:03
男篮又一次被无视了?日本王牌疑似不打世预赛:中国这一战输不起

男篮又一次被无视了?日本王牌疑似不打世预赛:中国这一战输不起

篮球快餐车
2026-07-02 06:03:34
世界杯7位主帅下课!科曼创耻辱,德国少帅不辞职 等1400万解约金

世界杯7位主帅下课!科曼创耻辱,德国少帅不辞职 等1400万解约金

小火箭爱体育
2026-07-01 16:46:27
凯特王妃亮相温网,多套花卉连衣裙尽显优雅英式穿搭美学

凯特王妃亮相温网,多套花卉连衣裙尽显优雅英式穿搭美学

墨薷桃桃
2026-07-01 16:49:15
悲催!网传西安赛格购物中心一商户坠楼,一篇控诉长文让人震惊

悲催!网传西安赛格购物中心一商户坠楼,一篇控诉长文让人震惊

火山詩话
2026-07-02 04:38:25
史上唯一被灭绝的民族,因过于凶残被各族联合剿杀,名字很耳熟!

史上唯一被灭绝的民族,因过于凶残被各族联合剿杀,名字很耳熟!

小莜读史
2026-06-24 13:27:56
40岁106天,哲科是首位出战世界杯淘汰赛的40+岁非门将球员

40岁106天,哲科是首位出战世界杯淘汰赛的40+岁非门将球员

懂球帝
2026-07-02 07:31:08
7月1日正式落地!聘用60岁以上工人不再随意,违规一次亏几十万

7月1日正式落地!聘用60岁以上工人不再随意,违规一次亏几十万

荷兰豆爱健康
2026-07-01 19:56:15
世界杯热评 | 凯恩负责赢球,英格兰队负责搞笑

世界杯热评 | 凯恩负责赢球,英格兰队负责搞笑

潇湘晨报
2026-07-02 10:31:11
“你这面相很难找到工作!”本科女孩印堂发黑,验证了老话没说错

“你这面相很难找到工作!”本科女孩印堂发黑,验证了老话没说错

世界圈
2026-06-30 08:10:35
白宫女秘书哥哥发声:她和特朗普总统的关系很不正常!亲密过头了

白宫女秘书哥哥发声:她和特朗普总统的关系很不正常!亲密过头了

霁寒飘雪
2026-07-01 17:16:25
2026-07-02 13:32:49
Ai学习的老章 incentive-icons
Ai学习的老章
Ai学习的老章
3451文章数 11169关注度
往期回顾 全部

科技要闻

奥特曼的新算盘:给白宫5%股权 换政策绿灯

头条要闻

13名村民阻拦开采山体涉寻衅滋事:4人获刑 9人获国赔

头条要闻

13名村民阻拦开采山体涉寻衅滋事:4人获刑 9人获国赔

体育要闻

世界杯硬核球迷,把自己变成了雕像

娱乐要闻

霍震霆回应霍启山娜然结婚传闻

财经要闻

千亿茶市场无赢家:澜沧巨亏 八马停"蹄"

汽车要闻

比亚迪26款海鸥,不到7万配激光雷达,官方还包赔?

态度原创

房产
教育
时尚
健康
数码

房产要闻

海南楼市新政:公积金最高可贷192万!

教育要闻

合肥理工学院今年计划招生多少人,官方解答来了(编辑:晨晨)

月入3万,时代红利砸向文科生

这4类消化病患者 吃粘食管住嘴

数码要闻

“内存厂战略合作伙伴”?游戏《CINDER CITY》最低需求32GB RAM

无障碍浏览 进入关怀版