我有以下的玩具数据框(真正的人有50万行):熊猫:指派GROUPBY的结果数据框到一个新的列
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