我有以下代码:
import pandas as pd
import numpy as np
df = pd.DataFrame([['red', 1], ['red', 13], ['red', 1], ['blue', 1], ['red', 112], ['blue', 10]])
df.columns = ["colour","rank"]
# df['highest_rank'] = ...
print(df)
"""
colour rank highest_rank
0 red 1 122
1 red 13 122
2 red 1 122
3 blue 1 10
4 red 112 122
5 blue 10 10
"""
希望这个例子能向你展示我在努力描述我想要什么时所要做的事情——每种颜色的最高排名。
按颜色分组,并使用变换广播每组中的最高级别。下方的代码
df['highest_rank']=df.groupby('colour')['rank'].transform('max')
colour rank highest_rank
0 red 1 112
1 red 13 112
2 red 1 112
3 blue 1 10
4 red 112 112
5 blue 10 10