如何将一列添加到pandas数据帧中,该数据帧具有某个范围中的最高值,但将其应用于每一行



我有以下代码:

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

最新更新