我有以下pandas数据框df:
cluster tag amount name
1 0 200 Michael
2 1 1200 John
2 1 900 Daniel
2 0 3000 David
2 0 600 Jonny
3 0 900 Denisse
3 1 900 Mike
3 1 3000 Kely
3 0 2000 Devon
我需要做的就是添加另一列df是写入每个row的name(从名字列)具有最高amount,其中tag为1。换句话说,解决方案看起来是这样的:
cluster tag amount name highest_amount
1 0 200 Michael NaN
2 1 1200 John John
2 1 900 Daniel John
2 0 3000 David John
2 0 600 Jonny John
3 0 900 Denisse Kely
3 1 900 Mike Kely
3 1 3000 Kely Kely
3 0 2000 Devon Kely
我试过这样的事情:
df.group('clusters')['name','amount'].transform('max')[df['tag']==1]
但问题在于该名称确实会在每一行上重复。它看起来像这样:
cluster tag amount name highest_amount
1 0 200 Michael NaN
2 1 1200 John John
2 1 900 Daniel John
2 0 3000 David NaN
2 0 600 Jonny NaN
3 0 900 Denisse NaN
3 1 900 Mike Kely
3 1 3000 Kely Kely
3 0 2000 Devon NaN
有人可以让我知道如何使用 split apply combine 添加条件,并在每一行上重复该解决方案吗?
慕少森
相关分类