我有一个庞大的数据数组(500k行),看起来像这样:
id value score
1 20 20
1 10 30
1 15 0
2 12 4
2 3 8
2 56 9
3 6 18
...
如您所见,左侧有一个非唯一的ID列,第3列中有各种分数。我希望能够快速地按ID进行分组,将所有分数相加。在SQL中,这看起来像是
SELECT sum(score) FROM table GROUP BY id
。使用NumPy,我尝试遍历每个ID,通过每个ID截断表格,然后对该表格的分数进行求和。table_trunc = table[(table == id).any(1)]
score = sum(table_trunc[:,2])
很不幸,我发现第一个命令非常慢。有没有更有效的方法来完成这个任务?