我有一个数据框,如:
index name message_counter
1 AA Counter({'hello':1})
2 BB Counter({'how':1, 'are':1, 'you':1})
3 BB Counter({'how':1})
4 AA Counter({'hello':1})
5 CC Counter({'hello':1})
我想要每个唯一名称的所有计数器的总和。 所以我做了:
df.groupby('name')['message_counter'].sum()
得到了正确的答案。类似的东西:
name
AA {'hello':2}
BB {'how':2, 'are':1, 'you':1}
CC {'hello':1}
但是我的数据集出乎意料地慢了。它通过6个独特的名称并通过33,000个计数器(我的数据框中的行数)进行求和,这并不是那么多,但它花费的时间比我预期的要长。像50秒以上的东西,整个180行并不需要那么多时间。
我做错了什么?我怎样才能改善这个?
答案 0 :(得分:2)
尝试使用稍微改进的this solution:
SELECT n.Name, s.id, s.Score
FROM Names n
LEFT OUTER JOIN Scores s
ON n.Name = s.Name
AND s.score < 12