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

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.

相关推荐
热点推荐
神舟二十三号香港女航天员:失重环境隐患重重,如何保障隐私?

神舟二十三号香港女航天员:失重环境隐患重重,如何保障隐私?

粤语音乐喷泉
2026-07-03 19:13:31
WTT大满贯!女单4强赛对阵,奥运冠军0-3惨败,蒯曼遭3大日乒围剿

WTT大满贯!女单4强赛对阵,奥运冠军0-3惨败,蒯曼遭3大日乒围剿

运动探索
2026-07-04 10:15:33
闪婚33天被卷走300万,深圳富豪花9年把“校花毒妻”送进监狱:比复仇更重要的,是这件事……

闪婚33天被卷走300万,深圳富豪花9年把“校花毒妻”送进监狱:比复仇更重要的,是这件事……

脆皮先生
2026-07-02 22:19:23
国足机会来了!随着佛得角2-3告别世界杯,两队友谊赛被提上日程

国足机会来了!随着佛得角2-3告别世界杯,两队友谊赛被提上日程

何老师呀
2026-07-04 09:43:53
舆论越大越反抗?20多位明星集体帮韩红站台,这是和网友打擂台?

舆论越大越反抗?20多位明星集体帮韩红站台,这是和网友打擂台?

眼光很亮
2026-07-02 10:44:56
中资拆除生产线,连夜回国!日本印度马上宣称要与印尼搞镍矿合作

中资拆除生产线,连夜回国!日本印度马上宣称要与印尼搞镍矿合作

阿龙聊军事
2026-07-04 09:25:21
搬起石头砸自己的脚!名媛不帮郭富城夫妻P图被骂,生图又肿又僵

搬起石头砸自己的脚!名媛不帮郭富城夫妻P图被骂,生图又肿又僵

素玉姑娘
2026-07-04 10:07:27
美记:送出两个选秀权加巴特勒就能得到詹眉,勇士竟然不愿意

美记:送出两个选秀权加巴特勒就能得到詹眉,勇士竟然不愿意

冷桂零落
2026-07-04 13:35:11
伊朗官员:出于安全考虑,新任最高领袖穆杰塔巴不会出席哈梅内伊告别仪式

伊朗官员:出于安全考虑,新任最高领袖穆杰塔巴不会出席哈梅内伊告别仪式

极目新闻
2026-07-03 16:59:04
360万元法拉利被4名儿童划损,最新进展:4名家长均已道歉,共计赔偿2万元,车主表示将不再追究责任

360万元法拉利被4名儿童划损,最新进展:4名家长均已道歉,共计赔偿2万元,车主表示将不再追究责任

大风新闻
2026-07-04 09:50:03
女演员千万别整容,看45岁马苏和40岁江疏影同框,就知道了

女演员千万别整容,看45岁马苏和40岁江疏影同框,就知道了

阿废冷眼观察所
2026-06-30 00:52:34
蒋万安陷僵局!民调公布,台北市长选情一面倒,绿营三人不装了

蒋万安陷僵局!民调公布,台北市长选情一面倒,绿营三人不装了

羽逸地之光
2026-07-03 16:09:00
一觉醒来,WTT美国大满贯,国乒传来三大振奋人心的好消息!

一觉醒来,WTT美国大满贯,国乒传来三大振奋人心的好消息!

田先生篮球
2026-07-04 06:54:57
火箭4换1交易:送芬尼-史密斯+3次轮去黄蜂 获1300万交易特例

火箭4换1交易:送芬尼-史密斯+3次轮去黄蜂 获1300万交易特例

醉卧浮生
2026-07-04 00:46:03
为什么有钱人开始偷偷收购“步梯房”?内行人说出实情,让我恍然大悟!

为什么有钱人开始偷偷收购“步梯房”?内行人说出实情,让我恍然大悟!

设计最前沿
2026-07-03 18:07:41
杜兰特再度卷入交易流言!有意搭档坎宁安冲冠 活塞准备随时报价

杜兰特再度卷入交易流言!有意搭档坎宁安冲冠 活塞准备随时报价

罗说NBA
2026-07-04 05:54:20
一中国女球迷在电梯间偶遇C罗,被单独拉到消防通道合影

一中国女球迷在电梯间偶遇C罗,被单独拉到消防通道合影

懂球帝
2026-07-03 18:39:21
二战后,全球已经消失的10个国家,包括中国的3个邻居

二战后,全球已经消失的10个国家,包括中国的3个邻居

七号说三国
2026-07-03 18:37:42
美伊协议签署后,美军获救飞行员才说出口:伊朗可能藏了一手绝活

美伊协议签署后,美军获救飞行员才说出口:伊朗可能藏了一手绝活

深析古今
2026-07-04 14:44:50
世界杯首例!非洲劲旅8人兴奋剂违规 检出违禁药物 FIFA拒绝置评

世界杯首例!非洲劲旅8人兴奋剂违规 检出违禁药物 FIFA拒绝置评

狍子歪解体坛
2026-07-04 11:54:56
2026-07-04 15:28:49
Ai学习的老章 incentive-icons
Ai学习的老章
Ai学习的老章
3452文章数 11169关注度
往期回顾 全部

科技要闻

韬定律论文V2版,充工程细节和实测数据

头条要闻

美大使装无辜:好失望 你们在中国肯定不自由

头条要闻

美大使装无辜:好失望 你们在中国肯定不自由

体育要闻

揭法国锋线最大优势 有人比姆巴佩还快?

娱乐要闻

最富女歌手霉霉完婚 在纽约设宴庆贺

财经要闻

韩国股市杠杆失控:450亿美元资金狂飙

汽车要闻

方程豹钛9内饰曝光 用上了长联屏设计/下半年上市

态度原创

教育
房产
家居
公开课
军事航空

教育要闻

刚刚,南京市中考分段表出炉,600分以上19942人!

房产要闻

总裁空缺17个月、现金缺口超1000亿:金融局“局外人”入局万科

家居要闻

传奇筑 日常诗

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

普京宣布俄军“完全解放”卢甘斯克

无障碍浏览 进入关怀版