我有一个类似这样的DataFrame:
fruit
0 orange
1 orange
2 orange
3 pear
4 orange
5 apple
6 apple
7 pear
8 pear
9 orange
我想添加一列来统计每个值的累积出现次数,即:
fruit cum_count
0 orange 1
1 orange 2
2 orange 3
3 pear 1
4 orange 4
5 apple 1
6 apple 2
7 pear 2
8 pear 3
9 orange 5
目前我是这样做的:
df['cum_count'] = [(df.fruit[0:i+1] == x).sum() for i, x in df.fruit.iteritems()]
当我处理10行数据时,这种方法是可行的,但当我尝试用数百万行数据做同样的事情时,会花费很长时间。有没有更高效的方法来处理这个问题?