gpt4 book ai didi

python - 在 Pandas 中使用 groupBy 时如何进行加权求和

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

我编了一个例子,因为我的数据集的上下文和细节可能太多/没有必要解释来回答我的问题。虽然我的例子可能很愚蠢,但要知道这个例子确实说明了我希望实现的目标(尽管规模要大得多)并且对给定的问题非常重要。在这个例子中,假设我们有不同的用户(用字母表示)。每个用户分享多个帖子,不同的用户经常分享同一个帖子。然后我们得出一个重要性分数(0 或 1 表示是否重要)和可靠性分数(从 1-10 分)。尽管为了这个问题如何计算这些指标完全无关紧要,但想象一下重要性可能会分析内容和上下文/当前事件,而可靠性会考虑此来源/用户的先前表现。重要性和可靠性之间是否存在关系尚不清楚

User       Share                      Importance            Reliability

A Carrots are 0 3
good for eyesight

B Apple Cider Vinegar 1 4
is good for pain

C Garlic is good for breadth 0 7

A Garlic is good for breadth 1 6
B Carrots are good for eyesight 1 9

这些数字可能没有意义——抱歉 不管怎样,我想对每个考虑到可靠性和重要性的文本进行某种加权求和。为此,我想找到每个独特的文本(由共享列表示)并对共享该文本的所有用户的重要性和可靠性分数的乘积求和。因此,我得到类似的东西:

A   6
B 13
C 0

我想要示例代码和关于如何解决这个问题的建议!提前致谢。

最佳答案

前多列 mul然后 groupby + sum :

groupby 的优点是 Series 不需要临时列。

df = pd.DataFrame({'User':['A','B','C','A','B'], 
'Importance':[0,1,0,1,1],
'Reliability':[3,4,7,6,9]})
print (df)
Importance Reliability User
0 0 3 A
1 1 4 B
2 0 7 C
3 1 6 A
4 1 9 B

df1 = df.Importance.mul(df.Reliability).groupby(df['User']).sum().reset_index(name='col')
print (df1)
User col
0 A 6
1 B 13
2 C 0

关于python - 在 Pandas 中使用 groupBy 时如何进行加权求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44299391/

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