【问题标题】:Find max of two columns and populate with value in third column查找两列的最大值并在第三列中填充值
【发布时间】:2021-09-18 05:02:53
【问题描述】:

我有一个带有 4 列的 pandas 数据框 - A、B、C、D 和 E。我想按 A 列创建组,然后找到 B 和 C 列的最大值,然后用 D 中存在的相应值填充 E如下例所示。

我的预期输出:

column A    column B    column C    column D    Column E
AA         1           a            12          15
AA         2           d            13          15
AA         3           b            14          15
AA         3           e            15          15
BB         1           c            15          17
BB         1           d            16          17
BB         2           b            17          17
BB         2           a            18          17
CC         1           a            11          0
CC         1           c            10          0
CC         1           b            11          0
CC         1           e            15          0

【问题讨论】:

    标签: python pandas dataframe group-by pandas-groupby


    【解决方案1】:

    您可以在分组之前对数据框进行排序,然后从 D 列中选择第一个值:

    df = df.sort_values(
        by=["column A", "column B", "column C", "column D"],
        ascending=[True, False, False, False],
    )
    
    df["Column E"] = df.groupby("column A")["column D"].transform("first")
    print(df.sort_index())
    

    打印:

      column A  column B column C  column D  Column E
    0       AA         1        a        12        15
    1       AA         2        d        13        15
    2       AA         3        b        14        15
    3       AA         3        e        15        15
    4       BB         1        c        15        17
    5       BB         1        d        16        17
    6       BB         2        b        17        17
    7       BB         2        a        18        17
    

    【讨论】:

    • 非常感谢。这真的是快速简单的修复!它就像一个魅力。
    • 实际问题是因为我申请填充列 E 的 if 条件。我正在更新问题,请您看看我的代码做错了什么并建议我如何更改它?谢谢你,很抱歉造成混乱。
    • @PushpaGadde 我建议恢复您问题的最后更改并在 StackOverflow 上创建一个新问题。我会试着看看它。
    • stackoverflow.com/questions/68290913/… @Andrej Kesely - 添加了新问题。感谢您的帮助。
    猜你喜欢
    • 2021-09-18
    • 2021-05-17
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多