【发布时间】:2018-09-29 04:27:08
【问题描述】:
我在 PD 数据框中按项目-日期对分组,并希望将一些使用 lambda 的自定义条件函数添加到更大的聚合函数中。
使用提示here,我可以执行以下操作,它可以正常工作并计算给定列中的正值和负值。
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()
有谁知道如何组合这些功能?似乎考虑到两者分开工作,我已经很接近了。感谢您的帮助!
【问题讨论】:
标签: python pandas aggregate pandas-groupby