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

任何事情都是由量变到质变的过程,学习Python也不例外。只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案。本文和你一起来探索Python中的pivot_table函数,让你以最短的时间明白这个函数的原理。也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。


  

一、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。

  

二、pivot_table函数实例

  

1 导入库并加载数据

  
首先导入本文需要的库并加载数据,如果你有些库还没有安装,导致运行代码时报错,可以在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函数所创造,并无实际含义。

  
  

2 实例

  

例1:指定行索引index参数

  
我们先来看下只设置一个index参数,其余参数采用默认值,会是什么效果,代码如下:

pd.pivot_table(date, index="课程")

得到结果:
  
图片
  
从结果知,当pivot_table只设置一个index参数时,相当于把index中的参数当成行,对数据表中所有数值列求平均值。类似excel中如下情形:
  
图片

  
  

例2:指定要聚合的列

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

pd.pivot_table(date, index="课程", values=['综合成绩'])

得到结果:

**图片**
  
对比例1可以发现,values不设置时,默认对数据表中所有数值列进行聚合。如果只想对某些列进行聚合,可以在values参数中进行指定。

  
  

例3:指定列索引columns参数

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

pd.pivot_table(date, index=["课程"], columns=['教师'], values=['综合成绩'])

得到结果:

在这里插入图片描述

  
类似excel中的如下设置:
  
**图片**

  
  

例4:指定聚合的统计函数

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

pd.pivot_table(date, index="课程", values=['综合成绩'], aggfunc=np.sum)

得到结果:

图片
  
从结果知,可以根据需求自行在aggfunc函数中指定要聚合的函数。

  
  

例5:设置两层索引

  
接下来看下在index参数中设置2个变量,构造两层索引的效果,代码如下:

pd.pivot_table(date, index=["课程", '教师'], values=['综合成绩'])

得到结果:

图片

类似在excel中如下设置:
  
图片

  
  

例6:设置加入汇总列

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

pd.pivot_table(date, index="课程", values=['综合成绩'], margins=True)

得到结果:

图片

  
  

例7:指定缺失值填充

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

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浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)

猜你喜欢

转载自blog.csdn.net/qq_32532663/article/details/130030874