Я полностью согласен с @mVChr и думаю, что вы слишком усложняете то, что вам нужно сделать.Если вы просто пытаетесь добавить дополнительный столбец, его ответ будет точным.Если вам действительно нужно groupby
, стоит отметить, что это обычно используется для агрегирования, например, sum()
, count()
и т. Д. Если, например, у вас было несколько записей с неуникальными значениями в User_id
столбец, то вы можете создать дополнительный столбец, используя
df['%_PQ_played'] = df['PQ_played'] / df['PQ_offered'] * 100
, а затем выполнить агрегирование.Допустим, вы хотели знать среднее число игр, в которые играли игры, предлагаемые для каждого пользователя, вы могли бы сделать что-то вроде
new_df = df.groupby('User_id', as_index=False)['%_PQ_played'].mean()
Это даст (числа произвольны)
User_id %_PQ_played
0 1 52.777778
1 2 29.250000
2 3 65.000000