【发布时间】:2013-12-21 18:39:29
【问题描述】:
我有一个这样的熊猫数据框:
Product Group Product ID Units Sold Revenue Rev/Unit
A 451 8 $16 $2
A 987 15 $40 $2.67
A 311 2 $5 $2.50
B 642 6 $18 $3.00
B 251 4 $28 $7.00
我想把它改成这样:
Product Group Units Sold Revenue Rev/Unit Mean Abs Deviation
A 25 $61 $2.44 $0.24
B 10 $46 $4.60 $2.00
Mean Abs Deviation 列将在第一个表中的 Rev/Unit 列上执行。棘手的是要考虑 Rev/Unit 计算背后的各自权重。
例如,对产品组 A 的 Rev/Unit 进行直接 MAD 将产生 0.26 美元。但是,考虑到重量后,MAD 为 0.24 美元。
我知道使用 groupby 来获得销售单位和收入的简单总和,但我对如何对接下来的 2 列进行更复杂的计算有点迷茫。
在我们提供建议/帮助的同时——有没有更简单的方法可以在 SO 帖子中创建/粘贴表格??
更新:
这样的解决方案会起作用吗?我知道它会用于求和字段,但不确定如何为后两个字段实现。
grouped_df=df.groupby("Product Group")
grouped_df.agg({
'Units Sold':'sum',
'Revenue':'sum',
'Rev/Unit':'Revenue'/'Units Sold',
'MAD':some_function})
【问题讨论】:
标签: python-2.7 pandas