任何事情都是由量变到质变的过程,学习Python也不例外。只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。本文和你一起来探索Python中的pivot_table函数,让你以最短的时间明白这个函数的原理。也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。
pivot_table函数是pandas库中的函数,调用首先需要加载pandas库。其功能相当于excel中的数据透视表。其基本调用语法如下:
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。
首先导入本文需要的库并加载数据,如果你有些库还没有安装,导致运行代码时报错,可以在Anaconda Prompt中用pip方法安装。
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函数所创造,并无实际含义。
我们先来看下只设置一个index参数,其余参数采用默认值,会是什么效果,代码如下:
pd.pivot_table(date, index="课程")
得到结果:
从结果知,当pivot_table只设置一个index参数时,相当于把index中的参数当成行,对数据表中所有数值列求平均值。类似excel中如下情形:
接着来看下应用values参数选择要聚合的列进行展示,代码如下:
pd.pivot_table(date, index="课程", values=['综合成绩'])
得到结果:
对比例1可以发现,values不设置时,默认对数据表中所有数值列进行聚合。如果只想对某些列进行聚合,可以在values参数中进行指定。
接着来看下应用columns参数选择要聚合的列进行展示,代码如下:
pd.pivot_table(date, index=["课程"], columns=['教师'], values=['综合成绩'])
得到结果:
如果aggfunc函数不指定聚合的函数,默认计算均值,接下来试下求和函数看看效果,代码如下:
pd.pivot_table(date, index="课程", values=['综合成绩'], aggfunc=np.sum)
得到结果:
从结果知,可以根据需求自行在aggfunc函数中指定要聚合的函数。
接下来看下在index参数中设置2个变量,构造两层索引的效果,代码如下:
pd.pivot_table(date, index=["课程", '教师'], values=['综合成绩'])
得到结果:
接着设置加入汇总列,代码如下:
pd.pivot_table(date, index="课程", values=['综合成绩'], margins=True)
得到结果:
最后设置缺失值填充,代码如下:
pd.pivot_table(date, index=["课程"], columns=['教师'], values=['综合成绩'], fill_value='空值')
得到结果:
对比例3,可以理解fill_value填充缺失值,是指填充透视后结果中存在的缺失值,而非透视前原表中的缺失值。
至此,Python中的pivot_table函数已讲解完毕,如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
用Python绘制520永恒心动
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
【Python】情人节表白烟花(带声音和文字)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)