问题描述
我有一个如下所示的数据框。 Words
指每封电子邮件发送的字数。
sender receiver words
a b 10
a c 5
a c 15
b a 50
b a 30
我对 Pandas 比较陌生。我想计算 1) 每对之间发送的电子邮件数量 2) 两个人之间发送的总字数的调和平均值。如何使用 hmean()
中的 scipy.stats
获得所需的输出?
sender receiver total_emails total_words
a b hmean([10])
a c hmean([5,15])
b a hmean([50,30])
对于电子邮件总数,我不确定正确的公式应该是什么。任何帮助将不胜感激!
解决方法
您可以使用groupby
:
from scipy import stats
df = df.groupby(['sender','receiver']).agg(stats.hmean).reset_index(name='total_words')
输出:
sender receiver total_words
0 a b 10.0
1 a c 7.5
2 b a 37.5