python - 查找两列中的最大值并用第三列中的值填充

标签 python pandas dataframe group-by pandas-groupby

我有一个包含 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

最佳答案

您可以在分组之前对数据框进行排序,然后从 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

关于python - 查找两列中的最大值并用第三列中的值填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68289601/

相关文章:

python - 在数据框中添加字典作为新行

python - 按小时对 Pandas 数据框进行分组的问题

python - 如何在 python 中使用@..以及@property 和@classmethod

python - 在带参数的函数中使用 timeit 模块

python - 根据条件连接两个 Pandas 列

python - 使用具有多个元素的字典过滤 Dataframe

python - 可以直接将存储在 pandas 数据框中的 SMILE 结构输入 RDKit 来计算分子指纹和相似度吗?

python - 有没有办法在 Pandas DataFrame 的列中查找模式

python - 假设 unicode_literals,如何安全地评估文字的表示?

python - Pandas 结合两个分组依据,过滤并合并分组(计数)