【问题标题】:Increasing Rank based on year in pandas dataframe在熊猫数据框中根据年份增加排名
【发布时间】:2022-08-17 16:18:18
【问题描述】:

我有 2022 年、2021 年和 2020 年的三个数据框,如下所示:

ID  YEAR  RANK
500 2022   1
510 2022   2
520 2022   3
ID  YEAR  RANK
501 2021   1
550 2021   2
560 2021   3

ID  YEAR  RANK
505 2020   1
506 2020   2
507 2020   3



我必须在 2021 年数据框下方附加 2020 年数据框,并且 2022 年数据框需要位于顶部并重新分配排名,如下面的输出所示:

ID  YEAR  RANK
500 2022   1
510 2022   2
520 2022   3
501 2021   4
550 2021   5
560 2021   6
505 2020   7
506 2020   8
507 2020   9

In above output I need to reassign the rank in a way that rank for year 2022 dataframe needs to be same but for first Id of year 2021 rank needs to be 4 which 1 higher than highest rank for year 2022 and so on. Similarly for year 2020 if highest rank for year 2021 is 6 rank for first Id for year 2020 rank needs to be 7 and so on.

    标签: python pandas dataframe


    【解决方案1】:

    首先将最大等级添加到df1 的所有等级,然后使用concat

    df2 = df2.assign(RANK = df2.RANK + df1.RANK.max())
    
    df = pd.concat([df1, df2], ignore_index=True)
    print (df)
        ID  YEAR  RANK
    0  500  2022     1
    1  510  2022     2
    2  520  2022     3
    3  501  2021     4
    4  550  2021     5
    5  560  2021     6
    

    【讨论】:

    • 感谢您的解决方案按预期工作。
    • 我更新了问题,您能否尝试更新您的解决方案?我在 2020 年又增加了 1 年,需要重新分配排名。
    猜你喜欢
    • 2021-08-08
    • 2023-02-13
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2019-10-10
    • 2022-07-06
    • 2017-11-30
    相关资源
    最近更新 更多