У меня есть один фрейм данных df:
route value
1 1 1
2 2 2
3 2 2
4 2 1
5 1 2
Значение столбца дает успех (2) или неудачу (1). Я хочу создать третий столбец, в котором указан уровень успеха для каждого маршрута.
Желаемый результат:
route value Rate
1 1 1 0.5
2 2 2 0.66
3 2 2 0.66
4 2 1 0.66
5 1 2 0.5
спасибо за помощь






Давай попробуем transform с groupby
df['Rate'] = df['value'].eq(2).groupby(df['route']).transform('mean')
df
Out[611]:
route value Rate
1 1 1 0.500000
2 2 2 0.666667
3 2 2 0.666667
4 2 1 0.666667
5 1 2 0.500000
хорошо, я получил ответ здесь, мой плохой: stackoverflow.com/questions/27517425/…
Спасибо ! Я заметил, что если я хочу сгруппировать по 2 маршрутам (например, маршрут 1 и маршрут 2),
df['Rate'] = df['value'].eq(2).groupby(df[['route1','route2']]).transform('mean')не работает:Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional, почему это так?