Python+Pandas实现数据透视表

 更新时间:2022年06月16日 16:00:19   作者:Python丁小杰  
对于数据透视表,相信对于Excel比较熟悉的小伙伴都知道如何使用它。本文将利用Python Pandas实现数据透视表功能,感兴趣的可以学习一下

大家好,我是丁小杰。

对于数据透视表,相信对于 Excel 比较熟悉的小伙伴都知道如何使用它,并了解它的强大之处,而在pandas中要实现数据透视就要用到pivot_table了。

导入示例数据

首先导入演示的数据集。

import pandas as pd

df = pd.read_csv('销售目标.csv')
df.head()

参数说明

主要参数:

  • data:待操作的 DataFrame
  • values:被聚合操作的列,可选项
  • index:行分组键,作为结果 DataFrame 的行索引
  • columns:列分组键,作为结果 DataFrame 的列索引
  • aggfunc:聚合函数/函数列表,默认 numpy.mean 这里要注意如果 aggfunc 中存在函数列表,则返回的 DataFrame 中会显示函数名称
  • fill_value:默认 None,可设定缺省值
  • dropna:默认 True,如果列的所有值都是 NaN,将被删除;False 则保留
  • margins:默认 False,设置为 True 可以添加行/列的总计
  • margins_name:默认显示 'ALL',当 margins = True 时,可以设定 margins  行/列的名称

常用操作

使用pivot_table时必须要指定index,因为计算时要根据index进行聚合。

pd.pivot_table(df.head(20),
               index='订单日期',
               aggfunc=np.sum)

通过指定value来选择被聚合的列。

pd.pivot_table(df.head(20),
               values='销售目标',
               index='订单日期',
               aggfunc=np.sum)

当只指定index进行聚合时,其实用groupby可以实现同样的效果。

df.head(20).groupby(['订单日期'])['销售目标'].sum().reset_index()

添加columns参数,对列分组。

pd.pivot_table(df.head(10),
               values='销售目标',
               index=['订单日期', '类别'],
               columns='细分',
               aggfunc=np.sum)

对于上面结果中的空值,使用fill_value参数统一填充为0

pd.pivot_table(df.head(10),
               values='销售目标',
               index=['订单日期', '类别'],
               columns=['细分'],
               aggfunc=np.sum,
               fill_value=0)

现在按年份来统计销售数据,注意此时的aggfunc参数,当参数值包含列表时,在结果DataFrame中就会显示函数名称。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns='细分',
               aggfunc=[np.sum])

如果需要添加合计列,只需指定margins=True即可,同时根据需要指定合计名称。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns='细分',
               aggfunc=np.sum,
               margins=True,
              margins_name='合计')

当然与groupby类似,对于计算函数我们可以同时指定多种方式。

pd.pivot_table(df,
               values='销售目标',
               index=['年份', '类别'],
               columns=['细分'],
               aggfunc={'销售目标': [max, np.sum]},
               fill_value=0)

到此这篇关于Python+Pandas实现数据透视表的文章就介绍到这了,更多相关Python 数据透视表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用pandas将numpy数组导出生成excel的实例

    利用pandas将numpy数组导出生成excel的实例

    今天小编就为大家分享一篇利用pandas将numpy数组导出生成excel的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python求均值,方差,标准差的实例

    Python求均值,方差,标准差的实例

    今天小编就为大家分享一篇Python求均值,方差,标准差的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python Pyecharts绘制箱线图详解

    Python Pyecharts绘制箱线图详解

    箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。本文将通过Python Pyecharts来绘制一些箱线图,需要的可以参考一下
    2022-03-03
  • python中uuid模块实例浅析

    python中uuid模块实例浅析

    在本篇文章里小编给大家整理了一篇关于python中uuid模块实例浅析内容,有需要的朋友们可以学习下。
    2020-12-12
  • python连接kafka加载数据的项目实践

    python连接kafka加载数据的项目实践

    本文主要介绍了python连接kafka加载数据的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Python应用领域和就业形势分析总结

    Python应用领域和就业形势分析总结

    在本篇文章总我们给大家整理了关于Python应用领域和就业形势分析以及图文介绍,需要的朋友们可以参考下。
    2019-05-05
  • python辗转相除法求最大公约数和最小公倍数的实现

    python辗转相除法求最大公约数和最小公倍数的实现

    这篇文章主要介绍了python辗转相除法求最大公约数和最小公倍数的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Django多对多ManyToManyField字段的使用

    Django多对多ManyToManyField字段的使用

    Django是一个支持多对多关系的Web框架,可以在模型中定义多对多关系,本文主要介绍了Django多对多ManyToManyField字段的使用,感兴趣的可以了解一下
    2023-12-12
  • Python爬取视频(其实是一篇福利)过程解析

    Python爬取视频(其实是一篇福利)过程解析

    这篇文章主要介绍了Python爬取视频(其实是一篇福利)过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python中路径字符串斜杠替换方式

    python中路径字符串斜杠替换方式

    这篇文章主要介绍了python中路径字符串斜杠替换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论