Pandas数据聚合与分组
2021/11/15 6:10:38
本文主要是介绍Pandas数据聚合与分组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据聚合与分组
- 什么是分组聚合?如图:
- groupby:(by=None,as_index=True)
by:根据什么进行分组,用于确定groupby的组
as_index:对于聚合输出,返回以组便签为索引的对象,仅对DataFrame
df1 = pd.DataFrame({'fruit':['apple','banana','orange','apple','banana'], 'color':['red','yellow','yellow','cyan','cyan'], 'price':[8.5,6.8,5.6,7.8,6.4]}) #查看类型 type(df1.groupby('fruit')) pandas.core.groupby.groupby.DataFrameGroupBy #GruopBy对象,它是一个包含组名,和数据块的2维元组序列,支持迭代 for name, group in df1.groupby('fruit'): print(name) #输出组名 apple banana orange print(group) # 输出数据块 fruit color price 0 apple red 8.5 3 apple cyan 7.8 fruit color price 1 banana yellow 6.8 4 banana cyan 6.4 fruit color price 2 orange yellow 5.6 #输出group类型 print(type(group)) #数据块是dataframe类型 <class 'pandas.core.frame.DataFrame'> <class 'pandas.core.frame.DataFrame'> <class 'pandas.core.frame.DataFrame'> #选择任意的数据块 dict(list(df1.groupby('fruit')))['apple'] #取出apple组的数据块 fruit color price 0 apple red 8.5 3 apple cyan 7.8
-
聚合
| 函数名 | 描述 | | :--- | :--- | | count | 分组中非NA值的数量 | | sum | 非NA值的和 | | mean | 非NA值的平均值 | | median | 非NA值的中位数 | | std, var | 标准差和方差 | | min, max | 非NA的最小值,最大值 | | prod | 非NA值的乘积 | | first, last | 非NA值的第一个,最后一个 |
#Groupby对象具有上表中的聚合方法 #根据fruit来求price的平均值 df1['price'].groupby(df1['fruit']).mean() fruit apple 8.15 banana 6.60 orange 5.60 Name: price, dtype: float64 #或者 df1.groupby('fruit')['price'].mean() #as_index=False df1.groupby('fruit',as_index=False)['price'].mean() fruit price 0 apple 8.15 1 banana 6.60 2 orange 5.60 """ 如果我现在有个需求,计算每种水果的差值, 1.上表中的聚合函数不能满足于我们的需求,我们需要使用自定义的聚合函数 2.在分组对象中,使用我们自定义的聚合函数 """ #定义一个计算差值的函数 def diff_value(arr): return arr.max() - arr.min() #使用自定义聚合函数,我们需要将函数传递给agg或aggregate方法,我们使用自定义聚合函数时,会比我们表中的聚合函数慢的多,因为要进行函数调用,数据重新排列 df1.groupby('fruit')['price'].agg(diff_value) fruit apple 0.7 banana 0.4 orange 0.0 Name: price, dtype: float64
这篇关于Pandas数据聚合与分组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南