百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

5分钟了解Pandas的透视表

liuian 2025-01-12 16:25 46 浏览

Pandas 库是用于数据分析的流行 Python 包。 Pandas 中处理数据集时,结构将是二维的,由行和列组成,也称为dataframe。 然而,数据分析的一个重要部分是对这些数据进行分组、汇总、聚合和计算统计的过程。

Pandas 数据透视表提供了一个强大的工具来使用 python 执行这些分析技术。

如果你是excel用户,那么可能已经熟悉数据透视表的概念。 Pandas 数据透视表的工作方式与 Excel 等电子表格工具中的数据透视表非常相似。 数据透视表函数接受一个df,一些参数详细说明了您希望数据采用的形状,并且输出是以数据透视表的形式汇总数据。

在下面的文章中,我将通过代码示例简要介绍 Pandas 数据透视表工具。

数据

在本教程中,我将使用一个名为“autos”的数据集。 该数据集包含有关汽车的一系列特征,例如品牌、价格、马力和每公里油耗等。

数据可以从 openml 下载。 或者可以使用 scikit-learn API 将代码直接导入到代码中,如下所示。

import pandas as pd
import numpy as np
from sklearn.datasets import fetch_openml
X,y = fetch_openml("autos", version=1, as_frame=True, return_X_y=True)
data = X
data['target'] = y

透视表剖析

Pandas 数据透视表具有三个主要元素。 索引指定行级分组,列指定列级分组和值,这些值是您要汇总的数值。

用于创建上述数据透视表的代码如下所示。 在 pivot_table 函数中,我们指定要汇总的df,然后是值、索引和列的列名。 此外,我们指定了我们想要使用的计算类型,我们以计算平均值为例。

pivot = np.round(pd.pivot_table(data, values='price', 
index='num-of-doors', 
columns='fuel-type', 
aggfunc=np.mean),2)

数据透视表可以是多级的。 我们可以使用多个索引和列级分组来创建更强大的数据集摘要。

pivot = np.round(pd.pivot_table(data, values='price', 
index=['num-of-doors', 'body-style'], 
columns=['fuel-type', 'fuel-system'], 
aggfunc=np.mean,
fill_value=0),2)

可视化

Pandas 数据透视表可与 Pandas 绘图功能结合使用,以创建有用的数据可视化。

只需将 .plot() 添加到数据透视表代码的末尾即可创建数据图。 例如,下面的代码创建了一个条形图,显示了按品牌和门数划分的平均汽车价格。

np.round(pd.pivot_table(data, values='price', 
index=['make'], 
columns=['num-of-doors'], 
aggfunc=np.mean,
fill_value=0),2).plot.barh(figsize=(10,7),
title='Mean car price by make and number of doors')

计算和统计

数据透视表函数中的 aggfunc 参数可以进行一项或多项标准计算。

以下代码计算body-style和num-of-doors的平均价格和中位数价格。

np.round(pd.pivot_table(data, values='price', 
index=['body-style'], 
columns=['num-of-doors'], 
aggfunc=[np.mean, np.median],
fill_value=0),2)

要将总计添加到列和行,可以简单地添加参数 margins=True 实现并且您可以使用 margins_name 为总计指定一个名称。

np.round(pd.pivot_table(data, values='price', 
index=['body-style'], 
columns=['num-of-doors'], 
aggfunc=[np.sum],
fill_value=0,
margins=True, margins_name='Total'),2)

样式

在汇总数据时,样式很重要。 我们希望确保数据透视表提供的模式和见解易于阅读和理解。 在本文前面部分使用的数据透视表中,应用了很少的样式,因此,这些表不容易理解或没有视觉上的重点。

我们可以使用另一种 Pandas 方法,称为样式方法,使表格看起来更漂亮,更容易从中得出见解。 下面的代码为此数据透视表中使用的每个值添加了适当的格式和度量单位。 现在更容易区分这两列并理解数据告诉您的内容。

pivot = np.round(pd.pivot_table(data, values=['price', 'horsepower'], 
index=['make'], 
aggfunc=np.mean,
fill_value=0),2)
pivot.style.format({'price':'${0:,.0f}',
'horsepower':'{0:,.0f}hp'})

我们可以使用styler组合不同的格式,并使用 Pandas 内置样式以一种好的方式汇总数据。 在下面显示的代码和数据透视表中,我们按价格从高到低对汽车制造商进行了排序,为数字添加了适当的格式,并添加了一个覆盖两列值的条形图。 这使得很容易得出结论,例如哪种品牌的汽车最贵,以及马力与每种品牌的价格之间的关系。

pivot = np.round(pd.pivot_table(data, values=['price', 'horsepower'], 
index=['make'], 
aggfunc=np.mean,
fill_value=0),2)

pivot = pivot.reindex(pivot['price'].sort_values(ascending=False).index).nlargest(10, 'price')
pivot.style.format({'price':'${0:,.0f}',
'horsepower':'{0:,.0f}hp'}).bar(color='#d65f5f')

总结

数据透视表自 90 年代初开始使用,微软于 1994 年为著名的 Excel 版本“数据透视表”申请了专利。它们今天仍在广泛使用,因为它们是分析数据的强大工具。 Pandas 数据透视表将这个工具从电子表格中带到了 python 用户的手中。

本指南简要介绍了 Pandas 中数据透视表工具的使用。 它旨在为初学者提供一个快速教程来启动和运行,但我建议深入研究 Pandas 文档,其中提供了有关此功能的更深入指南。

作者:Rebecca Vickery

相关推荐

微信主页背景墙壁纸怎么设置
  • 微信主页背景墙壁纸怎么设置
  • 微信主页背景墙壁纸怎么设置
  • 微信主页背景墙壁纸怎么设置
  • 微信主页背景墙壁纸怎么设置
校园网wifi免认证软件(校园网统一身份认证平台)

这个不存在犯法不犯法的问题,也就是说学校的网络是给你便捷使用的,反正都是给你使用的,你如何登录都没有任何的关系,其次就是你自己办的网的话,你有权利随意的更改,没办网的话那你就用学校的。1这是不道德和...

如何查看windows激活密钥(查看windows激活密钥命令)

可以按照以下步骤查看Windows系统的激活密钥:1.首先打开命令提示符,可通过在搜索栏中输入"cmd",然后右键管理员身份打开。2.在打开的命令提示符窗口中输入指令:slmgr/d...

dlink路由器(dlink路由器无法连接网络)

设置D-Link无线路由器无线桥接的具体步骤如下:1、将电脑与路由器的任意lan口连接,打开浏览器输入192.168.1.1,进入路由器管理页面。点击lan口设置,将lan口ip改为192.168.2...

c5game开箱网(c5game开箱网是正规的吗)

苹果c5game开箱操作很简单,首先进入c5game网站,选择打开自己的背包,然后找到自己想要开箱的物品,点击开箱按钮即可。在开箱过程中,会弹出一个开箱界面,按照界面提示进行操作,等待开箱过程结束即可...

ps5官网(playstation 官网)

在官网买ps5需要玩家收到预购邀请才可以。索尼决定遴选出一批忠实玩家,率先向其提供PS5实机预定服务,数量有限,先到先得。玩家只需在PlayStation.com网站完成注册手续。若有幸等到预购邀请电...

笔记本添加打印机步骤(电脑添加打印机步骤)
  • 笔记本添加打印机步骤(电脑添加打印机步骤)
  • 笔记本添加打印机步骤(电脑添加打印机步骤)
  • 笔记本添加打印机步骤(电脑添加打印机步骤)
  • 笔记本添加打印机步骤(电脑添加打印机步骤)
电脑上dat文件用什么打开(电脑上dat文件怎么打开)

、打开电脑,找到“我的电脑”然后再打开硬盘C就可以看到相应的dat文件。2、硬盘C里面可以找到很多的dat文件,只是他们的文件拓展名不一样。3、然后在我的电脑当中输入“dat”就会弹出许多与dat相关...

win10 2004和1909哪个好用(win10版本1909好用还是2004好用)

可以下载升级包进行升级。

主题商店oppo免费下载(oppo主题商店7.0.0下载)

如果在oppo手机上面下载主题上练的话,我建议还是不要下载,因为手机上自带有主题商店,然后可以在自带的主题商店里面就能下载使用自己的主题,再一个就是我们下载的主题商店,也会占手机内存,也可以导致手机内...

win10系统 pe(win10系统 PID 1716)

E10都是表示系统缺水,给壁挂炉充上水压补足1.2bar即可解决。用户在使用前,首先应检查锅炉的水压表指针是否在规定范围内,说明书中规定的标准水压为1-1.2bar。但在实际使用过程中,由于暖气系统和...

极路由登录(极路由登录网址是什么)
  • 极路由登录(极路由登录网址是什么)
  • 极路由登录(极路由登录网址是什么)
  • 极路由登录(极路由登录网址是什么)
  • 极路由登录(极路由登录网址是什么)
电信官网登录入口(中国电信官网登录入口)

中国电信天翼网关一般情况下,登陆地址是http://192.168.0.1,用提供的用户名和密码就可以登陆。电信智能网关登录的方法就是要看电信光纤猫上背面的标签上的登录管理页面的网址以及登录的用户名和...

比迅雷好用的下载工具(比迅雷好用的下载app)

迅雷是一款中国大陆的著名下载工具,但由于其限速和广告等问题,许多用户可能会寻求更良心、更干净的替代品。以下是一些建议的下载工具:1.IDM(InternetDownloadManager):这是...

win2007是win7吗(windows 7是哪一年的)
  • win2007是win7吗(windows 7是哪一年的)
  • win2007是win7吗(windows 7是哪一年的)
  • win2007是win7吗(windows 7是哪一年的)
  • win2007是win7吗(windows 7是哪一年的)