文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python制作数据分析透视表的方法详解

2024-04-02 19:55

关注

透视表是一种可以对数据动态排布并且分类汇总的表格格式,在常用的python的数据分析非标准库pandas中体现为pivot_table模块。

pivot_table数据透视表可以灵活的定制数据分析需求进行汇总,当然在Excel办公操作中早就存在了数据透视表的工具。如今,数据透视表被应用在python语言中更是给我们带来了大大地便利。

pivot_table有四个最重要的参数index、values、columns、aggfunc,通过设置不同的参数属性从而完成不同的数据分析需求。

pivot_table是pandas非标准库下面的数据透视表模块,因此需要安装pandas非标准库。按照以往的惯例还是采用pip的方式来进行安装即可。

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

首先,使用传统的excel读取函数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透视表内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯