[英]How do I add a column to a pandas dataframe which has the highest value in a range but applying it to every row?
我有以下代碼:
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
"""
希望該示例可以向您展示我正在努力做的事情,因為我正在努力描述我想要的東西 - 每種顏色的最高排名。
groupby 顏色並使用變換廣播每組中的最高排名。 下面的代碼
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.