查看原文
其他

对比Excel,轻松搞定Python数据透视表

朱小五 快学Python 2023-05-04

人生苦短,快学Python!

学习Excel,数据er最常用的两大Excel功能就是VLOOKUP和数据透视表!利用数据透视表可以从繁杂无序的源数据中筛选出自己需要的“字段标题”进行分类汇总、对比或合并等操作,作为一种强大的交互性报表,大大简化了数据处理和分析工作的步骤,提高办公效率,职场达人必学!

上一篇文章中我们已经详细讲解了Python如何实现Excel中的“Vlookup”函数?那我们今天就聊聊,如何Python实现Excel中数据透视表?


用Excel实现数据透视表的优势也很明显,只需要拖拉拽就可以,非常简单也容易操作。而Python去处理数据可以更快更强,比如几十万行级别的数据,Excel打开都需要半天,更别提快速处理了。

在 Pandas 模块中,调用pivot_table()方法,可以帮助我们实现数据透视表的操作。接下来我们可以对比 Excel 中数据透视表的操作步骤,为大家介绍pivot_table()方法中的常用参数。

▲图3-16

对比上图的Excel数据透视表参数,我列出了pivot_table()方法中的8个常用参数。

附上官网学习地址:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html

▲《快学Python:自动化办公轻松实战》

此外,还有两个参数用的较少,不用特别记忆。

  • dropna 表示是否删除缺失值,如果为True时,则把一整行全作为缺失值删除;
  • sort=True 表示排序(版本1.3.0才有)。

接下来用一个小案例实战来模拟,Python实现Excel中数据透视表。

▲原始数据

导入数据,在交互式环境中输入如下命令:

import pandas as pd

df = pd.read_excel("原始数据.xlsx")
df.head()

输出结果:

接下来,使用几个最常见的参数建立透视表。

在交互式环境中输入如下命令:

pd.pivot_table(df,
               values = "销售数量",
               index = ["货季""区域"],
               columns = "品牌",
               aggfunc = np.sum)

输出结果:

如上图所示,“透视表”中NaN空值可以使用fill_value参数填充为0;此外,指定参数margins=True就可以增加合计列,同时也能指定合计名称(margins_name)。

在交互式环境中输入如下命令:

pd.pivot_table(df,
               values = "销售数量",
               index = ["货季""区域"],
               columns = "品牌",
               # aggfunc = np.sum, 
               aggfunc = "sum"# 同上
               margins = True,
               margins_name = "总计",
               fill_value = 0)

输出结果:

以上就是Python实现Excel中数据透视表的常用操作了。人生苦短,快学Python!如果文章对你有帮助,希望大家点赞支持一下!

openpyxl提供对透视表的读取支持,以便将它们保留在现有文件中,但是不支持用户创建pivot表。它可以编辑和操作现有的透视表,以后有机会跟大家介绍一波。

如果大家想系统学习Pandas,推荐一本《深入浅出Pandas》

这是一本全面覆盖了Pandas使用者的普遍需求和痛点的著作,基于实用、易学的原则,从功能、使用、原理等多个维度对Pandas做了全方位的详细讲解,既是初学者系统学习Pandas难得的入门书,又是有经验的Python工程师案头必不可少的查询手册。


↓ 点击阅读原文,查看作者新书《快学Python》的最新优惠!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存