Python数据分析:pandas透视表pivot_table核心参数详解

木白
木白
发布时间:2026-10-12 | 4人浏览过
原创

本文详解Python中pandas库的pivot_table函数,通过index、values、columns及aggfunc四大核心参数,演示如何对Excel数据进行动态分组、汇总与计算。涵盖均值、求和等多种统计方式,帮助开发者高效完成数据清洗与分析任务。

数据透视表是一种支持动态排列与分类汇总的表格格式。在Python的数据分析生态中,这一功能由非标准库pandas提供的pivot_table模块实现。

pivot_table允许用户灵活定制数据分析需求以进行汇总。尽管Excel中早已内置了数据透视表工具,但将其引入Python语言后,为数据分析师提供了更为强大的自动化处理便利。

pivot_table函数包含四个关键参数:index、values、columns和aggfunc。通过配置这些参数的不同属性,可以满足多样化的数据分析需求。

由于pivot_table属于pandas库的功能,使用前需确保已安装该库。通常采用pip工具进行安装,具体命令如下:

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/

首先,利用传统的read_excel函数读取Excel文件中的数据,该操作返回的数据格式为DataFrame。

import pandas as pd  # 导入pandas模块

df = pd.read_excel('C:/test/data.xlsx')  # 读取Excel数据文件

print(df.tail())  # 打印部分结果

#             名称  年龄    班级   成绩  表现
# 21  Python 集中营  24  1739  111  A+
# 22  Python 集中营  25  1740  112  A+
# 23  Python 集中营  26  1741  113  A+
# 24  Python 集中营  27  1742  114  A+
# 25  Python 集中营  28  1743  115  A+

1、pivot_table函数index属性

通过pandas的read_excel函数读取Excel数据文件后,我们得到DataFrame对象。接下来,利用数据透视表进行汇总,首先观察使用index属性的汇总效果。

print(pd.pivot_table(df, index=[u'名称']))

#               年龄     成绩      班级
# 名称
# Python 集中营  15.5  102.5  1730.5

在上述示例中,仅指定了一个索引字段'名称'。结果显示,pivot_table函数自动对名为'Python 集中营'的数据进行了汇总,并计算了其他数值字段的均值。

print(pd.pivot_table(df, index=[u'名称', u'表现']))

#                  年龄     成绩      班级
# 名称         表现
# Python 集中营 A+  15.5  102.5  1730.5

当使用两个或更多字段作为index时,实际上执行了多次分组操作。例如,先对'名称'字段进行分组,随后再对'表现'字段进行分组。

2、pivot_table函数values属性

values属性用于指定在结果中显示的特定字段。在某些场景下,无需展示所有字段,仅需选取部分字段的值参与运算。

print(pd.pivot_table(df, index=[u'表现'], values=[u'班级', u'成绩']))

#        成绩      班级
# 表现
# A+  102.5  1730.5

需注意,values属性通常仅适用于指定具有数值属性的字段,这有助于更好地实现分组统计效果。

3、pivot_table函数aggfunc属性

aggfunc属性用于设置计算方式,支持同时配置多种计算模式并展示结果。在前面的示例中未指定该参数,系统默认使用均值算法进行统计汇总。

下面演示设置两种计算方式:一种保持均值计算,另一种采用求和方式,从而同时展示两种模式下的统计结果。

print(pd.pivot_table(df, index=[u'名称'], values=[u'年龄', u'成绩'], aggfunc=['mean', 'sum']))

#            mean         sum
#               年龄     成绩   年龄    成绩
# 名称
# Python 集中营  15.5  102.5  403  2665

可以看到,汇总结果分别输出了年龄和成绩的平均值与总和,效果符合预期。

4、pivot_table函数columns属性

columns属性主要用于展示字符类型的字段。若某行对应字段无值,可使用fill_value参数填充默认值以确保数据完整性,通常columns与fill_value配合使用。

print(pd.pivot_table(df, index=[u'名称'], values=[u'年龄', u'成绩'], aggfunc=['mean', 'sum'], columns=[u'表现'],
                     fill_value=0))

#             mean         sum
#               年龄     成绩   年龄    成绩
# 表现            A+     A+   A+    A+
# 名称
# Python 集中营  15.5  102.5  403  2665

至此,关于Python制作数据分析透视表的详解介绍完毕。如需了解更多Python透视表相关内容,可搜索本站往期文章或继续浏览后续文章,感谢支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表