100天精通Python(数据分析篇)——第66天:Pandas透视表基础+实战案例(pivot_table函数)
创始人
2024-02-21 22:57:55
0

在这里插入图片描述

文章目录

  • 每篇前言
  • 一、透视表基础参数说明+实战案例
    • 0. 导入Excel数据
    • 1. data
    • 2. index
    • 3. values
    • 4. columns
    • 5. aggfunc
    • 6. fill_value
    • 7. dropna
    • 8. margins
    • 9. margins_name
    • 10. observed
    • 11. sort

每篇前言

  • 🏆🏆作者介绍:Python领域优质创作者、华为云享专家、阿里云专家博主、2021年CSDN博客新星Top6

  • 🔥🔥本文已收录于Python全栈系列专栏:《100天精通Python从入门到就业》
  • 📝​📝​此专栏文章是专门针对Python零基础小白所准备的一套完整教学,从0到100的不断进阶深入的学习,各知识点环环相扣
  • 🎉🎉订阅专栏后续可以阅读Python从入门到就业100篇文章还可私聊进千人Python全栈交流群(手把手教学,问题解答); 进群可领取80GPython全栈教程视频 + 300本计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
  • 🚀🚀加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!

在这里插入图片描述
在这里插入图片描述

一、透视表基础参数说明+实战案例

  • 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。
  • 之所以称为数据透视表,是因为可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。每一次改变版面布置时,数据透视表会立即按照新的布置重新计算数据。另外,如果原始数据发生更改,则可以更新数据透视表。

语法格式

pandas.pivot_table(data: DataFrame, # 制作透视表的数据values=None, # 值index=None, # 行索引columns=None, # 列属性aggfunc: AggFuncType = "mean", # 使用的函数,默认是均值fill_value=None, # 缺失值填充margins=False, # 是否显示总计dropna=True, # 缺失值处理margins_name="All", # 总计显示为Allobserved=False, # 显示类别分组的观察值sort=True, # 排序功能
) -> DataFrame

参数说明:

0. 导入Excel数据

CSDN下载链接(设置0积分但是好像还是要会员):透视表-篮球赛数据.xlsx

阿里网盘链接:https://www.aliyundrive.com/s/bsqugWGJLVz

import pandas as pd
import numpy as npdf = pd.read_excel(r'E:\Python学习\透视表——篮球赛数据.xlsx')
print(df)

在这里插入图片描述


1. data

要创建透视表的DataFrame对象


2. index

接收字符串,列表、分组器、数组或上一个的列表。如果传递了数组,它的长度必须与数据的长度相同。列表可以包含任何其他类型(列表除外)。要根据透视表索引分组的键。如果传递了一个数组,则它的使用方式与列值相同。

(1)接收字符串:

df.pivot_table(index='对手')

运行结果:

在这里插入图片描述

(2)接收列表:

# 在不同主客场下对阵同一对手的数据,分类条件为对手和主客场
df.pivot_table(index=['对手','主客场'])

运行结果:
在这里插入图片描述


3. values

要聚合的列/筛选需要显示的列,可选。如果不写values显示全部数据,写了只会显示我们指定的数据

在主客场和不同胜负情况下的得分和投篮数:

df.pivot_table(index=['主客场','胜负'],values=['投篮数','得分'])

运行结果:
在这里插入图片描述


4. columns

列、分组器、数组或上一个的列表。如果传递了数组,它的长度必须与数据的长度相同。列表可以包含任何其他类型(列表除外)。要在透视表列上分组的键。如果传递了一个数组,则它的使用方式与列值相同。

横向显示每队主客场的得数:

df.pivot_table(index=['主客场'],values='得分',columns='对手')

在这里插入图片描述

5. aggfunc

函数,函数列表,dict,默认numpy.mean。如果传递了函数列表,则生成的透视表将具有分层列,其顶层是函数名称(从函数对象本身推断)。如果传递了dict,则键是要聚合的列,值是函数或函数列表。

(1)单个函数应用:

# 计算在主客场和不同胜负情况下的总得分、总投篮数
df.pivot_table(index=['主客场','胜负'],values=['得分','投篮数'],aggfunc='sum')

可以看出投篮数和得数成正比关系:
在这里插入图片描述

(2)多个函数应用:我们可以在aggfunc函数中指定多个函数,将这些函数放在同一个列表中:

  • 求和:sum

  • 求均值:mean

  • 求个数:size

df.pivot_table(index=['主客场','胜负'],values=['得分','投篮数'],aggfunc=['sum','mean','size'])

在这里插入图片描述

6. fill_value

标量,默认无。值替换缺少的值(在聚合后的结果透视表中)。

横向显示每队主客场的得数,用fill_value=0填充空值:

df.pivot_table(index=['主客场'],values='得分',columns='对手',fill_value=0)

运行结果:
在这里插入图片描述

7. dropna

bool,默认为True。不要包含条目均为NaN的列。如果为True,则在计算边距之前,将忽略任何列中具有NaN值的行。简单来说就是数据中有空值的列不会参与计算


8. margins

bool,默认为False。添加所有行/列(例如小计/总计)。作用是对透视表中的分组数据进行汇总显示。

计算在主客场和不同胜负情况下的总得分、总投篮数,并对结果进行汇总:

df.pivot_table(index=['主客场','胜负'],values=['得分','投篮数'],aggfunc='sum',margins=True)

在这里插入图片描述

9. margins_name

作用修改margins汇总的行名,接收str,默认为“All”。只有margins=True,参数margins_name的设置才会生效。

计算在主客场和不同胜负情况下的总得分、总投篮数,并对结果进行汇总:

df.pivot_table(index=['主客场','胜负'],values=['得分','投篮数'],aggfunc='sum',margins=True,margins_name='汇总')

在这里插入图片描述

10. observed

bool,默认为False。这只适用于任何一个石斑鱼属于分类的情况。如果为True:仅显示类别分组的观察值。如果为False:显示类别分组的所有值。


11. sort

bool,默认为True。指定是否应对结果进行排序。1.3.0版中的新功能。

计算对手的总得分,并对结果进行排序

(1)排序前:

df.pivot_table(index='对手',values='得分',aggfunc='sum')

在这里插入图片描述


(2)排序后:这里由于自带的sort参数没有效果于是用的sort_values函数

df.pivot_table(index='对手',values='得分',aggfunc='sum').sort_values(by=['得分'],ascending=False)

在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...