前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python常用函数】一文让你彻底掌握Python中的pivot_table函数

【Python常用函数】一文让你彻底掌握Python中的pivot_table函数

作者头像
阿黎逸阳
发布2023-08-21 18:55:16
2.6K0
发布2023-08-21 18:55:16
举报

任何事情都是由量变到质变的过程,学习Python也不例外。

只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。

本文和你一起来探索Python中的pivot_table函数,让你以最短的时间明白这个函数的原理。

也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。

一、pivot_table函数定义

pivot_table函数是pandas库中的函数,调用首先需要加载pandas库。

其功能相当于excel中的数据透视表。

其基本调用语法如下:

代码语言:javascript
复制
import pandas as pd 

pd.pivot_table(data: 'DataFrame', values=None, index=None, columns=None, aggfunc: 'AggFuncType' = 'mean', fill_value=None, margins: 'bool' = False, dropna: 'bool' = True, margins_name: 'str' = 'All', observed: 'bool' = False, sort: 'bool' = True)

data:数据集。

values:要聚合的列,默认对所有数值型变量聚合。 index:设置透视表中的行索引名。 columns:设置透视表中的列索引名。 aggfunc:聚合统计函数,可以是单个函数、函数列表、字典格式,默认为均值。当该参数传入字典格式时,key为列名,value为聚合函数值,此时values参数无效。 fill_value:缺失值填充值,默认为NaN,即不对缺失值做处理。注意这里的缺失值是指透视后结果中可能存在的缺失值,而非透视前原表中的缺失值。 margins:指定是否加入汇总列,默认为False。 margins_name:汇总列的列名,与margins配套使用,默认为‘All’,当margins为False时,该参数无作用。 dropna:是否删除汇总结果中全为NaN的行或列,默认为True。 二、pivot_table函数实例 1 导入库并加载数据 首先导入本文需要的库并加载数据,如果你有些库还没有安装,导致运行代码时报错,可以在Anaconda Prompt中用pip方法安装。

代码语言:javascript
复制
import os 
import numpy as np
import pandas as pd 

os.chdir(r'G:\python\17_python中常用函数')
date = pd.read_excel('date.xlsx', sheet_name='ori')
date

os.chdir:设置数据存放的文件路径。 pd.read_excel:读取数据。 得到结果:

以上数据集只是为了清晰地理解pivot_table函数所创造,并无实际含义。 2 实例 例1:指定行索引index参数 我们先来看下只设置一个index参数,其余参数采用默认值,会是什么效果,代码如下:

代码语言:javascript
复制
pd.pivot_table(date, index="课程")

得到结果:

从结果知,当pivot_table只设置一个index参数时,相当于把index中的参数当成行,对数据表中所有数值列求平均值。

类似excel中如下情形:

例2:指定要聚合的列

接着来看下应用values参数选择要聚合的列进行展示,代码如下:

代码语言:javascript
复制
pd.pivot_table(date, index="课程", values=['综合成绩'])

得到结果:

对比例1可以发现,values不设置时,默认对数据表中所有数值列进行聚合。

如果只想对某些列进行聚合,可以在values参数中进行指定。

例3:指定列索引columns参数 接着来看下应用columns参数选择要聚合的列进行展示,代码如下:

代码语言:javascript
复制
pd.pivot_table(date, index=["课程"], columns=['教师'], values=['综合成绩'])

得到结果:

类似excel中的如下设置:

例4:指定聚合的统计函数 如果aggfunc函数不指定聚合的函数,默认计算均值,接下来试下求和函数看看效果,代码如下:

代码语言:javascript
复制
pd.pivot_table(date, index="课程", values=['综合成绩'], aggfunc=np.sum)

得到结果:

从结果知,可以根据需求自行在aggfunc函数中指定要聚合的函数。 例5:设置两层索引 接下来看下在index参数中设置2个变量,构造两层索引的效果,代码如下:

代码语言:javascript
复制
pd.pivot_table(date, index=["课程", '教师'], values=['综合成绩'])

得到结果:

类似在excel中如下设置:

例6:设置加入汇总列 接着设置加入汇总列,代码如下:

代码语言:javascript
复制
pd.pivot_table(date, index="课程", values=['综合成绩'], margins=True)

得到结果:

例7:指定缺失值填充

最后设置缺失值填充,代码如下:

代码语言:javascript
复制
pd.pivot_table(date, index=["课程"], columns=['教师'], values=['综合成绩'], fill_value='空值')

得到结果:

对比例3,可以理解fill_value填充缺失值,是指填充透视后结果中存在的缺失值,而非透视前原表中的缺失值。

至此,Python中的pivot_table函数已讲解完毕,如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿黎逸阳的代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档