Gil*_*ere 5 python group-by dataframe pandas
我有以下玩具数据框(真实的有 50 万行):
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
Run Code Online (Sandbox Code Playgroud)
而想要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
Run Code Online (Sandbox Code Playgroud)
我找到了这个,但它对我不起作用
到目前为止我有:
df.loc[:, 'size2'] = (df.groupby('adult',as_index=True)['weight','size']
.transform(lambda x: x.ix[x['weight'].idxmax()]['size']))
Run Code Online (Sandbox Code Playgroud)