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

 更新时间:2022年09月27日 09:21:47   作者:Sir 老王  
透视表是一种可以对数据动态排布并且分类汇总的表格格式,在常用的python的数据分析非标准库pandas中体现为pivot_table模块。本文主要介绍了如何实现制作数据分析透视表,需要的可以参考一下

透视表是一种可以对数据动态排布并且分类汇总的表格格式,在常用的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透视表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python pcm音频添加头转成Wav格式文件的方法

    python pcm音频添加头转成Wav格式文件的方法

    今天小编就为大家分享一篇python pcm音频添加头转成Wav格式文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python实现日期字符串转换为指定格式的日期

    Python实现日期字符串转换为指定格式的日期

    在Python编程中,日期处理是一个常见的任务,本文将详细介绍如何在Python中将日期字符串转换为指定格式的日期,感兴趣的小伙伴可以学习一下
    2024-04-04
  • 解决Python import docx出错DLL load failed的问题

    解决Python import docx出错DLL load failed的问题

    今天小编就为大家分享一篇解决Python import docx出错DLL load failed的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Pytest allure 命令行参数的使用

    Pytest allure 命令行参数的使用

    这篇文章主要介绍了Pytest allure 命令行参数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python实现自动上京东抢手机

    Python实现自动上京东抢手机

    这篇文章主要为大家详细介绍了Python实现自动上京东抢手机的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 简单谈谈python基本数据类型

    简单谈谈python基本数据类型

    在Python中,能够直接处理的数据类型有以下几种:#整型 int,#浮点型 float,#布尔型 bool,#复数型 (在python中用小写 j ,表示虚部,用其他的字母不行)complex
    2018-09-09
  • Python使用Matplotlib绘制3D圣诞树

    Python使用Matplotlib绘制3D圣诞树

    这篇文章主要为大家详细介绍了Python如何使用Matplotlib绘制3D圣诞树,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • 利用Python实现命令行版的火车票查看器

    利用Python实现命令行版的火车票查看器

    当你想查询一下火车票信息的时候,你还在上12306官网吗?或是打开你手机里的APP?下面让我们来用Python写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你想要的火车票信息!如果你刚掌握了Python基础,这将是个不错的小练习。
    2016-08-08
  • Python tkinter label 更新方法

    Python tkinter label 更新方法

    今天小编就为大家分享一篇Python tkinter label 更新方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • keras实现theano和tensorflow训练的模型相互转换

    keras实现theano和tensorflow训练的模型相互转换

    这篇文章主要介绍了keras实现theano和tensorflow训练的模型相互转换,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06

最新评论