簡體   English   中英

如何向 pandas dataframe 添加一列,該列在一個范圍內具有最高值但將其應用於每一行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM