【发布时间】:2021-05-23 16:51:26
【问题描述】:
我的数据如下所示:
d = {'id' : [1, 1, 1, 2, 2, 2],
'levels': ['low', 'perfect', 'high', 'low', 'perfect', 'high'],
'value': [1, 10, 13, 2, 10, 13]}
df = pd.DataFrame(d, columns=['id', 'levels', 'value'])
df = df.groupby(['id','levels'])[['value']].mean()
对于每个 [id, levels],我想找出行的 value 和 perfect 行的 value 之间的区别。它看起来像这样:
id | levels | value | penalty
1 | high | 13 | 3
| low | 1 | 9
| perfect| 10 | 0
2 | high | 13 | 3
| low | 2 | 8
| perfect| 10 | 0
例如,在第一行中,您将从完美值 10 中减去 13,得到 3。
那么我该如何进行计算,找到每个[id, levels] 的perfect 值,然后找出差异呢?
【问题讨论】:
标签: python pandas dataframe pandas-groupby