Я исхожу из толпы R и использую для dplyr. В функции mutate есть аргумент, в котором вы можете сохранить остальные столбцы при каждом изменении столбца (.keep_all = T).
Однако мне не хватает такого аргумента в пандах. Другими словами, кажется, что только столбцы в агрегате оказываются в выводе, если я не использую что-то вроде
bb = df_Payment.groupby(['person']).agg({
**{'payment': 'mean', 'person': 'count'},
**({column: 'first' for column in df_Payment.columns
if column not in ('payment', 'person')})})
zz = df_Payment_selected.groupby(['person']).mean().reset_index()[['person','payment']]
zz2 = pd.merge(zz, df_agreement_selected, how='left',
left_on=['person'], right_on=['person'])
однако ни один из них не является оптимистичным, как
df > group_by(person) > mutate(payment_avg = mean(payment), .keep_all = T)