为了账号安全,请及时绑定邮箱和手机立即绑定

在 Pandas DataFrame 中重新分配最大值

在 Pandas DataFrame 中重新分配最大值

一只斗牛犬 2022-06-14 17:16:51
我有一个看起来像这样的 DataFrame:id OUTCOMEA    0A    1A    0B    0B    0B    0C    0C    1C    1如何重新分配结果值,使它们等于每组的最大值?换句话说,结果应该是这样的:id OUTCOME A    1 A    1 A    1 B    0 B    0 B    0 C    1 C    1 C    1我试过这样做:id_tuple = ('A', 'B', 'C')g = df.groupby('id')for item in id_tuple:    new_df = g.get_group(item)    new_df['OUTCOME'] = new_df['OUTCOME'].max()    df2 = pd.concat([df2, new_df], axis=0)这需要很长时间,所以我正在寻找更好的方法。我很感激你的建议!
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

您可以先按'id' 列分组,然后.transform(..)对OUTCOME列执行 a :


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

然后我们得到:


>>> df

  id  OUTCOME

0  A        1

1  A        1

2  A        1

3  B        0

4  B        0

5  B        0

6  C        1

7  C        1

8  C        1


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信