gpt4 book ai didi

python - 使用groupby仅对其中一列pandas python具有相同值的行进行操作

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

如何创建仅对列具有相同值的行子集完成操作的 groupby 函数?

所以在下表中,我想根据相同的文档列表对行进行子集化,然后仅为“组织”列的文档列表子集添加 NP 和 Pr。

        Organization NP Pr
0 doclist[0] 0 0
1 doclist[0] 1 0
4 doclist[1] 1 0
5 doclist[4] 1 0
6 doclist[4] 0 1

想在下面使用 .apply() - 或者有更好/更有效的方法吗?

        Organization NP Pr  Sum
0 doclist[0] 0 0 1
1 doclist[0] 1 0 1
4 doclist[1] 1 0 1
5 doclist[4] 1 0 2
6 doclist[4] 0 1 2

最佳答案

你想看看 groupby,我认为——那是“只对其中一列具有相同值的行进行操作”部分——因为看起来你想要每个行以获得适当的总和,我想你想调用 .transformtransform 将分组值“广播”到完整数据帧。

df["Sum"] = (df["NP"] + df["Pr"]).groupby(df["Organization"]).transform("sum")

例如:

>>> df
Organization NP Pr
0 doclist[0] 0 0
1 doclist[0] 1 0
4 doclist[1] 1 0
5 doclist[4] 1 0
6 doclist[4] 0 1

[5 rows x 3 columns]
>>> df["Sum"] = (df["NP"] + df["Pr"]).groupby(df["Organization"]).transform("sum")
>>> df
Organization NP Pr Sum
0 doclist[0] 0 0 1
1 doclist[0] 1 0 1
4 doclist[1] 1 0 1
5 doclist[4] 1 0 2
6 doclist[4] 0 1 2

[5 rows x 4 columns]

关于python - 使用groupby仅对其中一列pandas python具有相同值的行进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22362010/

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