gpt4 book ai didi

python - Pandas 将行值除以聚合总和,条件由其他单元格设置

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:42 25 4
gpt4 key购买 nike

您好希望得到一些帮助,我有两列 Dataframe df as;

Source ID
1 2
2 3
1 2
1 2
1 3
3 1

我的目的是对源进行分组,并根据分组的源将 ID 单元格除以总数,并将其附加到原始数据框,以便新列看起来像;

   Source ID  ID_new
1 2 2/9
2 3 3/3
1 2 2/9
1 2 2/9
1 3 3/9
3 1 3/1

我已经做到了;

df.groupby('Source ID')['ID'].sum()

获取 ID 的总数,但我不确定下一步该去哪里。

最佳答案

试试这个:

In [79]: df.assign(ID_new=df.ID/df.groupby('Source').ID.transform('sum'))
Out[79]:
Source ID ID_new
0 1 2 0.222222
1 2 3 1.000000
2 1 2 0.222222
3 1 2 0.222222
4 1 3 0.333333
5 3 1 1.000000

如果您需要将其作为新的持久性 列,您可以按照@jezrael 在comment 中提出的建议进行操作:

In [81]: df['ID_new'] = df.ID/df.groupby('Source').ID.transform('sum')

In [82]: df
Out[82]:
Source ID ID_new
0 1 2 0.222222
1 2 3 1.000000
2 1 2 0.222222
3 1 2 0.222222
4 1 3 0.333333
5 3 1 1.000000

关于python - Pandas 将行值除以聚合总和,条件由其他单元格设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39387954/

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