我有以下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
(来自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
有人能让我知道如何添加一个条件与分裂应用联合收割机,并有解决方案在每一行重复?你知道吗
你可以分两个阶段来做。首先计算映射序列,然后按簇映射:
如果要使用
groupby
,有一种方法:相关问题 更多 >
编程相关推荐