【问题标题】:DataFrame - Add a new ranking columnDataFrame - 添加新的排名列
【发布时间】:2021-11-21 20:08:01
【问题描述】:

对于下表,仅考虑前 2 列“水果”和“百分比”。

如何添加第三列,即。 'new_column' 分组查看 'Fruit' 列和 放一个与百分比相对应的数字。例如,在“Apple”组中 - 最高百分比是 99 - 所以它被分配 1....等等。

所以 - 给定“水果”和“百分比”列 - 然后如何将“new_column”添加到数据框。

希望这很清楚,并提前感谢您。

Fruit percentage new_column
Apple 23 3
Apple 99 1
Apple 50 2
Pear 45 4
Pear 87 1
Pear 67 3
Pear 70 2
Peach 93 1
Peach 75 2

【问题讨论】:

    标签: python pandas lambda pandas-groupby


    【解决方案1】:

    我觉得应该是这样的:

    import pandas as pd
    

    原始数据:

    df = pd.DataFrame({
          'fruit': ['Apple', 'Apple', 'Apple', 'Pear', 'Pear', 'Pear', 'Pear', 'Peach', 'Peach'], 
          'percentage': [23, 99, 50, 45, 87, 67, 70, 93, 75]
    })
    

    输出

    根据fruitrank 分组内percentage 的值对df 数据框进行分组,创建新的“排名”列。

    df['rank'] = df.groupby('fruit')['percentage'].rank()
    

    输出:

    【讨论】:

    • 那是伟大的 garagnoth - 直截了当。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 2018-09-01
    • 2020-05-04
    • 2017-01-21
    • 1970-01-01
    • 2016-08-27
    相关资源
    最近更新 更多