【发布时间】:2019-05-29 01:42:47
【问题描述】:
我有一个 Pandas DataFrame,如下所示:
data = {'user_id':[1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3],
'time':[10, 12, 11, 20, 40, 41, 42, 100, 60, 22, 0, 3],
'height':[1.23, 1.1, 0.5, 10.3, 3.33, 4.55, 2.22, 2.21, 2.25, 7.75, 9.2, 5.5],
'width':[3, 4, 6, 2, 4, 8, 9, 0, 6, 6, 6, 4]}
df = pd.DataFrame(data)
现在,我想从每一列(user_id 列除外)中减去按user_id 分组的平均值。这意味着对于user_id 1,time 的平均值为 13.25 ((10 + 12 + 11 + 20) / 4),因此从 10、12、11 和 20 中减去 13.25 导致
'time':[-3.25, -1.25, -2.25, 6.75, 40, 41, 42, 100, 60, 22, 0, 3]
我想为所有列和所有用户执行此操作。如何做到这一点?
【问题讨论】:
标签: python pandas pandas-groupby