У меня есть 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), поэтому 13,25 вычитается из 10, 12, 11 и 20, что приводит к
'time':[-3.25, -1.25, -2.25, 6.75, 40, 41, 42, 100, 60, 22, 0, 3]
Это я хотел бы сделать для всех столбцов и всех пользователей. Как это можно сделать?