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