У меня есть DataFrameПанда новый столбец из GroupBy средних
>>> df = pd.DataFrame({'a':[1,1,1,2,2,2],
... 'b':[10,20,20,10,20,20],
... 'result':[100,200,300,400,500,600]})
...
>>> df
a b result
0 1 10 100
1 1 20 200
2 1 20 300
3 2 10 400
4 2 20 500
5 2 20 600
и хочет создать новый столбец, средний результат для соответствующих значений для «а» и «B». Я могу получить эти значения с GroupBy:
>>> df.groupby(['a','b'])['result'].mean()
a b
1 10 100
20 250
2 10 400
20 550
Name: result, dtype: int64
, но не могу понять, как превратить это в новый столбец в оригинальном DataFrame. Окончательный результат должен выглядеть так,
>>> df
a b result avg_result
0 1 10 100 100
1 1 20 200 250
2 1 20 300 250
3 2 10 400 400
4 2 20 500 550
5 2 20 600 550
Я мог бы сделать это с помощью цикла через комбинацию «а» и «б», но что бы получить очень медленно и громоздким для больших наборов данных. Вероятно, есть намного более простой и быстрый способ.
совершенны, спасибо! – rurp