gpt4 book ai didi

python - 使用 groupby 创建具有最大值的新列

转载 作者:太空宇宙 更新时间:2023-11-04 00:19:48 24 4
gpt4 key购买 nike

从以下数据框中,我尝试添加一个新列,条件是为每个 id 检查最大值。然后将每个 id 的每一行的最大值放在新列中。

df

id value
1 0
1 0
1 0
2 0
2 1
3 1
3 1

预期结果:

id  value new_column
1 0 0
1 0 0
1 0 0
2 0 1
2 1 1
3 1 1
3 1 1

我试过:

df['new_column'] = df.groupby(['id'])['value'].idxmax()

或者:

df['new_column'] = df.groupby(['id'])['value'].max()

但是这些都没有给出预期的结果。

最佳答案

你需要为此使用transform:

df['new_column'] = df.groupby(['id'])['value'].transform('max')

这更简洁地复制了以下内容:

df['new_column'] = df['id'].map(df.groupby(['id'])['value'].max())

请记住,groupby 操作的结果是一个索引设置为石斑鱼列的系列。

由于索引在您的原始数据框和groupby对象之间没有对齐,分配不会自动发生。

关于python - 使用 groupby 创建具有最大值的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49591867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com