python中frame用法,dataframe agg函数
使用方法介绍
变换的使用方法
熊猫。系列。转换
callfunconselfproducingaserieswithmtransformedvalues。
生产的系列将有sameaxislengthasself。
参数
函数,字符串,列表
functiontosefortransformingthedata .整合档案衔接器(Integrated File Adapter)函数,mustaitherworkwhenpassedseriesorwhenpassedtoseries。申请。
可接受的组合有:
函数
字符串函数名称
列出函数和/或函数名,例如【NP。exp sqrt ]
轴标签字典-函数,函数名或此类的列表。
轴{ 0或“索引”}
参数需要与数据框兼容.*参数
positionalargumentstopasstofunc .* *克瓦查
函数的关键字参数
返回
塞利兹
aseriesthatmusthathesamelengthasself。
举起
valueerriftheturnedserieshasadifferengthghanself。
series.transform(self,func,axis=0,*args,**kwargs)))))))。
集料的使用方法
熊猫Series.agg
系列AgG(self,func,axis=0,*args,* * kwargs)[来源]
aggregateusingoneormoreoperationsoverthespecified轴。
新版本0.20.0。
参数
函数,字符串,列表
functiontoseforaggregatingthedata .整合档案衔接器(Integrated File Adapter)函数,mustaitherworkwhenpassedseriesorwhenpassedtoseries。申请。
可接受的组合有:
函数
字符串函数名称
列出函数和/或函数名,例如[名词短语,意思是]
轴标签字典-函数,函数名或此类的列表。
轴{ 0或“索引”}
参数需要与数据框兼容.*参数
positionalargumentstopasstofunc .* *克瓦查
函数的关键字参数
返回
标量,序列或数据帧
结果可能是:
标量:当系列。aggiscalledwithsinglefunction
系列:当数据帧。aggiscalledwithasinglefunction
数据框:当数据帧。aggiscalledwithseveralfunctions
返回标量,序列或数据帧。
系列AgG(self,func,axis=0,*args,**kwargs))))))。
熊猫DataFrame.agg
DataFrame.agg(self,func,axis=0,*args,* * kwargs)[来源]
在指定轴上使用一个或多个运算进行聚合。
因素
函数,字符串,列表
用于聚合数据的函数。如果是函数,则必须在传递给数据帧时工作,或者在传递给数据框架.应用时工作。
可接受的组合有:
功能
字符串函数名
函数和/或函数名列表,例如[名词短语,意思是]
轴标签字典-函数、函数名或此类列表。
轴{ 0或索引,1或列 },默认值为0
如果为0或“索引”:对每一列应用函数.如果1或“列”:将函数应用于每一行。*参数
函数的位置参数。* *克瓦查
函数的关键字参数。
返回
标量,序列或数据帧
结果可能是:
标量:当系列与单个函数聚合时
系列:当数据框。集料与单个函数一起调用时
数据帧:当数据框。集料与几个函数一起调用时
返回标量系列或数据框架.
聚合操作总是在一个轴上执行,无论是
索引(默认)或列轴。这种行为不同于数组聚合函数(均值、中值、乘积、总和、标准差、
var),其中默认值用于计算扁平化的聚合
数组,例如numpy.mean(arr_2d)与
numpy.mean(arr_2d,轴=0)。
集料是聚合的别名。使用别名。
DataFrame.agg(self,func,axis=0,*args,**kwargs)
案例:
df=pd .数据帧({A :范围(3)“乙”:范围(1,4)})
df
有
0 01
1 1 2
2 2 3df。变换(x:x ^ 1)
有
01 2
1 2 3
2 3 4
案例
异同点
应用()与转换()聚集()的异同点:
同:
熊猫。核心。小组。小组
熊猫。数据帧
熊猫。系列
类的对象都可以调用如上方法
异:
1 .应用()里面可以跟自定义的函数,包括简单的求和函数以及复杂的特征间的差值函数等,但是agg()做不到
2.agg()/transform()方法可以反射调用(str调用)"总和"、"最大值"、"最小值"、"计数"等方法,形如总和。应用不能直接使用,而可以用自定义函数列特征的方法调用。
3 .转换()里面不能跟自定义的特征交互函数,因为改变是真针对每一元素(即每一列特征操作)进行计算
性能比较
分别计算在同样简单需求下各组合方法的计算时长
数据源是最近卡歌网比赛:
#更正" sell_prices.csv "的数据类型
定价类型={ store _ id : category , item_id: category , wm_yr_wk: int16 , sell _ price : float 32 } #读取战斗支援车文件
prices=pd.read_csv( ./sell_prices.csv ,
dtype=priceDTypes)
prices.head()
贷款(价格)
2.1转换()方法自定义函数
prices.groupby([商店标识,商品标识])[销售价格]。transform(x:x . min())
prices.groupby([商店标识,商品标识])[销售价格]。transform(x:x . max())
prices.groupby([商店标识,商品标识])[销售价格]。transform(x:x . sum())
prices.groupby([商店标识,商品标识])[销售价格]。转换(lambdax:x.count())
len(prices.groupby([store_id , item_id])[sell_price].transform(x:x . mean())
查看代码
2.2转换()方法大蟒内置方法
prices.groupby([商店标识,商品标识])[销售价格]。转换("分钟")
prices.groupby([商店标识,商品标识])[销售价格]。转换("最大")
prices.groupby([商店标识,商品标识])[销售价格]。转换("求和")
prices.groupby([商店标识,商品标识])[销售价格]。转换("计数")
len(prices.groupby([store_id , item_id])[sell_price].转换(意思))
查看代码
2.3应用()方法自定义函数
prices.groupby([商店标识,商品标识])[销售价格]。apply(lambdax:x.min())
prices.groupby([商店标识,商品标识])[销售价格]。apply(lambdax:x.max())
prices.groupby([商店标识,商品标识])[销售价格]。apply(lambdax:x.sum())
prices.groupby([商店标识,商品标识])[销售价格]。apply(lambdax:x.count())
len(prices.groupby([store_id , item_id])[sell_price].apply(lambda x:x.mean()))
查看代码
2.4 agg()方法自定义函数
prices.groupby([商店标识,商品标识])[销售价格]。agg(lambdax:x.min())
prices.groupby([商店标识,商品标识])[销售价格]。agg(lambdax:x.max())
prices.groupby([商店标识,商品标识])[销售价格]。agg(lambdax:x.sum())
prices.groupby([商店标识,商品标识])[销售价格]。agg(lambdax:x.count())
len(prices.groupby([store_id , item_id])[sell_price].agg(x:x . mean())
查看代码
2.5 agg()方法大蟒内置方法
prices.groupby([商店标识,商品标识])[销售价格]。agg(min )
prices.groupby([商店标识,商品标识])[销售价格]。agg(max )
prices.groupby([商店标识,商品标识])[销售价格]。agg(“总和")
prices.groupby([商店标识,商品标识])[销售价格]。agg(计数)
len(prices.groupby([store_id , item_id])[sell_price].agg(mean ))
查看代码
2.6 结论
agg() python内置方法的计算速度最快,其次是变换()python内置方法。而转换()方法自定义函数的组合方法最慢,需要避免使用!
大蟒自带的统计数据统计模块在熊猫结构中的计算也非常慢,也需要避免使用!
转化差异
集料运算分组的数据完直接赋给原生df数据某字段报错
应用运算分组的数据完直接赋给原生df数据某字段报错
改变运算分组的数据完直接赋给原生df数据某字段就不会报错
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。