У меня есть следующие игрушки dataframe (реальная один имеет 500K строк):Панды: Назначают результат GroupBy к dataframe в новый столбец
df = pd.DataFrame({'size': list('SSMMMLS'),
'weight': [8, 10, 11, 1, 20, 14, 12],
'adult' : [False] * 5 + [True] * 2})
adult size weight
0 False S 8
1 False S 10
2 False M 11
3 False M 1
4 False M 20
5 True L 14
6 True S 12
И хотите GroupBy adult
, выберите строку, для которой weight
является максимальное и и назначить в новом столбце size2
значение size
колонка:
adult size size2 weight
0 False S S 8
1 False S S 10
2 False M S 11
3 False M S 1
4 False M S 20
5 True L L 14
6 True S L 12
Я нашел this, но это не работает для меня
До сих пор у меня есть:
df.loc[:, 'size2'] = df.groupby('adult',as_index=True)['weight','size']
.transform(lambda x: x.ix[x['weight'].idxmax()]['size'])
Я не понимаю, чего вы хотите. Вы хотите создать новый столбец 'size2' со значением в столбце' size2' ... – bozdoz