文章来源于Python大数据分析,作者朱卫军
什么是透视表?
经常做报表的小伙伴对数据透视表应该不陌生,在excel中利用透视表可以快速地进行分类汇总,自由组合字段聚合计算,而这些只需要拖拉拽就能实现。
维基百科对透视表(pivot table)解释是:
A 「pivot table」 is a table of statistics that summarizes the data of a more extensive table.
透视表是一种汇总了更广泛表数据的统计信息表。
典型的数据格式是扁平的,只包含行和列,不方便总结信息:
而数据透视表可以快速抽取有用的信息:
pandas也有透视表?
pandas作为编程领域最强大的数据分析工具之一,自然也有透视表的功能。
在pandas中,透视表操作由
pivot_table()
函数实现,不要小看只是一个函数,但却可以玩转数据表,解决大麻烦。
pivot_table使用方法:
pandas.pivot_table(*data*, *values=None*, *index=None*, *columns=None*, *aggfunc='mean'*, *fill_value=None*, *margins=False*, *dropna=True*, *margins_name='All'*, *observed=False*)
参数解释:
data:dataframe格式数据
values:需要汇总计算的列,可多选
index:行分组键,一般是用于分组的列名或其他分组键,作为结果DataFrame的行索引
columns:列分组键,一般是用于分组的列名或其他分组键,作为结果DataFrame的列索引
aggfunc:聚合函数或函数列表,默认为平均值
fill_value:设定缺失替换值
margins:是否添加行列的总计
dropna:默认为True,如果列的所有值都是NaN,将不作为计算列,False时,被保留
margins_name:汇总行列的名称,默认为All
observed:是否显示观测值
注意,在所有参数中,values、index、columns最为关键,它们分别对应excel透视表中的值、行、列:![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9nNjRzYmI2RmZtZVE5aWN3UThLNFdXdE9FclVybDNzcVlNMW1YNGE2RWFoWUFuTEZ6SVBucnFKcGU1eEE1WEFpY09pYURCNjBpYTZoc0pHUnd4MU5SRklmMVEvNjQw?x-oss-process=image/format,png)
参数aggfunc对应excel透视表中的值汇总方式,但比excel的聚合方式更丰富:![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9nNjRzYmI2RmZtZVE5aWN3UThLNFdXdE9FclVybDNzcVlBNlVVcXJJYWlhaWJ5eGd6eDNOMXVBSnJ6OFZkVlBENTREdzRNQnBXSGxyYWEwZDZJd3RnSXM3dy82NDA?x-oss-process=image/format,png)
如何使用pivot_table?
下面拿数据练一练,示例数据表如下:![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9nNjRzYmI2RmZtZVE5aWN3UThLNFdXdE9FclVybDNzcVlyZlZXeGU0dXZQNW4yMTY2RGM5TkVBQThtTTNpYjQwdER5eWI4Qzd5WXVxZkN4c3dJa0E0anV3LzY0MA?x-oss-process=image/format,png)
该表为用户订单数据,有订单日期、商品类别、价格、利润等维度。
首先导入数据:
data = pd.read_excel("E:\\订单数据.xlsx")
data.head()
接下来使用透视表做分析:
计算每个州销售总额和利润总额
result1 = pd.pivot_table(data,index='洲' , values = ['销售额','利润'] , aggfunc = np.sum)
result1.head()
计算每个洲每个城市每单平均销售量
result2 = pd.pivot_table(data,index=['洲','城市'],aggfunc=np.mean,values=['数量'])
result2.head(20)
计算每个洲的总销量和每单平均销量
result3 = pd.pivot_table(data,index=['洲'],aggfunc=[np.sum,np.mean],values=['数量'])
result3.head()
看每个城市(行)每类商品(列)的总销售量,并汇总计算
result4 = pd.pivot_table(data,index=['城市'],columns=['商品类别'],aggfunc=[np.sum],values=['数量'],margins=True)
result4.head()
本文介绍了pandas pivot_table函数的使用,其透视表功能基本和excel类似,但pandas的聚合方式更加灵活和多元,处理大数据也更快速,大家有兴趣可探索更高级的用法。
备注:本站的微信群尚有几十个名额,可以直接扫码进入。
若扫码显示满员请扫下面的二维码:
前文我们介绍了数据分组,今天我们接着介绍一个和数据分组很相似的内容,是数据透视表,从名字上来看是不是感觉没半毛钱关系,实际不然,数据分组是从一维(行)的角度上对数据进行了拆分,如果我们想从二维的角度上(行和列)同时对数据进行拆分呢?这就需要用到我们今天的主角,数据透视表了。...
import pandas as pd
example = pd.DataFrame({'Amount': [74., 235., 175., 100., 115., 245., 180., 90., 88., 129., 273., 300.],
'Category': ['Transportation', 'Grocery', 'Household', 'Entertainment',
'Transport
数据透视表是数据分析中非常有用的工具,可以帮助我们快速了解数据的结构、关联和趋势。在这个例子中,我们首先使用groupby()函数来按照产品和日期对销售数据进行分组,并计算销售额的总和。接着,我们使用unstack()函数来将日期作为列,产品作为行,重新排列数据。最后,我们可以得到一个类似的数据透视表,以便更好地分析和理解销售数据。我们想要创建一个数据透视表,显示每个产品在每个日期的总销售额。除了使用pivot_table()函数,我们还可以使用groupby()和unstack()函数来实现数据透视表。
前言主要想做的事情用大白话来讲就是:一个dataframe里面对于两个列做分组,最后算一个value对应于这两个列的分组来算值的矩阵,这个矩阵的行为其中一个列,列也为其中一个列。新建一个...
对于数据透视表,相信对于 Excel 比较熟悉的小伙伴都知道如何使用它,并了解它的强大之处,而在pandas中要实现数据透视就要用到pivot_table了。导入示例数据首先导入演示的数据集。importpandasaspd
df=pd.read_csv('销售目标.csv')
df.head()参数说明主要参数:data:待操作的 DataFramevalu...
文章目录Pandas数据透视表准备工作什么是数据透视表手工制作一张数据透视表数据透视表语法多维数据透视表数据透视表的其他选项value参数aggfunc参数margin参数margins_name参数泰坦尼克号生还率分析整体情况男女船舱登记生还率排除异常美国人生日分析整体情况每年的人口出生情况创建日期索引不同年代的星期日均出生数各年份平均每天的出生数
Pandas数据透视表
前面我们讲解了Pandas的GroupBy对象,并且结合行星的例子讲解了Groupby是如何探索数据集内部的关联性了
数据透视表(pi
改变类别标签cat.categories , 对行、列重新排序; 重新排列分类:用其中的数据定义index/columns; pivot; 双重索引:矩阵的index与columns 重新排列相互转化: stack 与 unstack; 行列重命名; 行列相互转化
很多时候,我们用Python处理数据,需要连接到Mysql、Postgresql等数据库,获取表数据,再构建pandas的DataFrame进行进一步处理。但是查询数据库结果集是没有表字段名称的,我们希望构建的DataFrame的列名和表字段一样。
直接上代码
这里以Postgresql数据库为例,Mysql数据库差不多,其他的自行改造。
先封装一个查询类,查询返回的结果是一个字典,head是表列...
在实际工作中,一些字段较多的数据,存储时往往以params-values的形式存储。如下所示:
test = pd.DataFrame([['a','var1',1],['a','var2',2],['b','var1',1],['b','var2',2]],columns=['id','params','values'])
一个id对应多行。然而在使用数据的过程中,往往希望一个id...
实战是学习的最好途径,效率最高,本文不是很长,通过小小的练习,让大家综合运用基础知识,加深印象巩固记忆。一、读入数据,了解数据本数据随机生成的假数据,读者可以自己造,也可以通过下方链接下载,或者后台回复“超市营业额”获取:链接:https://pan.baidu.com/s/1OIOwBdBZydgRf5U72Gh_vg提取码:vedz读入数据import random
import numpy ...
1 Pandas 透视表概述
透视表是一种可以对数据动态排布并且分类汇总的表格格式。或许大多数人都在Excel使用过数据透视表,也体会到它的强大功能,而在pandas中它被
透视表是一种可以对数据动态排布并且分类汇总的表格格式。对于熟练使用 excel 的伙伴来说,一定很是亲切!pd.pivot_table() 语法:pivot_table(data, # dataframevalues=none, # 值index=none, # 分类汇总依据columns=none, # 列aggfunc='mean', # 聚合函数fill_value=none, ...
Pandas 库是用于数据分析的流行 Python 包。 Pandas 中处理数据集时,结构将是二维的,由行和列组成,也称为dataframe。 然而,数据分析的一个重要部分是对这些数据进行分组、汇总、聚合和计算统计的过程。
Pandas 数据透视表提供了一个强大的工具来使用 python 执行这些分析技术。
如果你是excel用户,那么可能已经熟悉数据透视表的概念。 Pandas 数据透视表的工作方式与 Excel 等电子表格工具中的数据透视表非常相似。 数据透视表函数接受一个df,一些参数详细说明了您希