标签:bsp -o str gate 方法 list 均值 函数 min
如图:
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
#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
标签:bsp -o str gate 方法 list 均值 函数 min
原文地址:https://www.cnblogs.com/qshhl/p/14638484.html