我有一个大的pandas数据框架(1M行),格式如下。
data = {
'names': {0: ['Lily', 'Kerry', 'Mona'], 1: ['Kerry', 'Mona'], 2: ['Mona']},
'sentiment': {0: 10, 1: 2, 2: 0}
}
df = pd.DataFrame(data)
df
names sentiment
0 [Lily, Kerry, Mona] 10
1 [Kerry, Mona] 2
2 [Mona] 0
我想计算名字列中每个独特名字的平均情绪,结果如下。
names sentiment
0 Lily 10
1 Kerry 6
2 Mona 4
独特名字的数量非常多,所以效率很重要。
这需要先对 "姓名 "列进行爆炸,然后再进行标准的。GroupBy.mean()
:
df.explode('names').groupby('names', as_index=False, sort=False).mean()
names sentiment
0 Lily 10
1 Kerry 6
2 Mona 4