我正在对一个PD数据框进行按项目日期对分组,并希望在更大的聚合函数中添加一些自定义条件函数,这些函数使用lambda实现。
使用这里的提示,我可以执行以下操作,它可以正确地计算给定列中的正数和负数。
item_day_count=item_day_group['PriceDiff_pct'].agg({'Pos':lambda val: (val > 0).sum(),'Neg':lambda val: (val <= 0).sum()}).reset_index()
我还可以使用另一种聚合方式,其中包含预先构建的聚合和自定义百分位数函数,以返回正确的统计数据:
item_day_count_v2=item_day_group['PriceDiff_pct'].agg(['count','min',percentile(25),'mean','median',percentile(75),'max']).reset_index()
但我不知道如何将它们合并为一个更大的函数 - 当我尝试以下操作时,我收到错误:AttributeError: 'DataFrameGroupBy' object has no attribute 'name'
:
item_day_count_v3=item_day_group['PriceDiff_pct'].agg(['count',{'Pos_Return':lambda val: (val > 0).sum(),'Neg_Return':lambda val: (val <= 0).sum()},'min',percentile(25),'mean','median',percentile(75),'max']).reset_index()
有人知道如何将这些功能组合起来吗?看起来我很接近了,因为它们分别都能正常工作。感谢您的帮助!