专业编程基础技术教程

网站首页 > 基础教程 正文

数分必会python点 数据分组汇总

ccvgpt 2024-11-22 11:24:00 基础教程 1 ℃

大家好,我是数据小郑。

本篇是数分常用数分必会python点 系列的第一篇:数据分组汇总。

数分必会python点 数据分组汇总

系列内容,请看【数分必会python点】话题,订阅后文章更新可第一时间推送至订阅号。


数分工作者在python的工具使用上,pandas包肯定是天天都用,groupby是pandas包使用最为频繁的工具之一。本文主要介绍利用groupby 对数据进行拆分,选择,按照需求分组进行信息汇总。

标记数据拆分组

df.groupby之后生成的是分组索引标记,不是新的df,如df2g所示;它的索引标记如df2g.groups,本质上是个变量名与索引的字典。且对于describe的数据描述也存在分组。对于多重拆分,只需要df.groupby(['类型','所属省份'])即可。

df.groupby(
by : 用于分组的变量名/函数
axis = 0 : 
level = None : 相应的轴存在多重索引时,指定用于分组的级别
as_index = True : 在结果中将组标签作为索引
sort = True : 结果是否按照分组关键字进行排序
dropna = True : 是否将NA看作普通键值用于分组,1.1版新增
) # 生成的是分组索引标记,而不是新的DF

基于拆分进行筛选

#筛选出其中的一组
df2group.get_group()
#筛选出最大值
df2g.max()

使用agg函数进行汇总

〓基本用法

df.aggregate()

名称可以直接简写为agg
0.20版新增
可以用axis指定汇总维度
可以直接使用的汇总函数

count() Number of non-null observations
size()  group sizes
sum()   Sum of values
mean()  Mean of values
median()    Arithmetic median of values
min()   Minimum
max()   Maximum
std()   Unbiased standard deviation
var()   Unbiased variance
skew()  Unbiased skewness (3rd moment)
kurt()  Unbiased kurtosis (4th moment)
quantile()  Sample quantile (value at %)
apply() Generic apply
cov()   Unbiased covariance (binary)
corr()  Correlation (binary)


当然,agg除了引用内置函数外,还可以使用非内置函数和自定义函数。


〓特殊用法

我们发现使用agg汇聚计算后列名不是我们想要的,agg在汇总中同时指定列名和汇总函数,从而能够在一个汇总命令中得到不同的汇总结果。


其他分组办法

pd.crosstab()
pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None,margins=False, margins_name='All', dropna=True, normalize=False)

crosstab()一种特殊的pivot_table(),pivot_table()也可以实现crosstab()的功能。pivot_table(data, values=None, index=None, columns=None,aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
pivot_table有四个最重要的参数index、values、columns、aggfun。

原创不易,欢迎点赞、留言、分享,支持我继续写下去

我是数据小郑,最近正在原创【数分必会python点】系列话题,欢迎订阅。订阅后,文章更新第一时间推送至订阅号,每篇文章不错过。

最近发表
标签列表