Pandas:根据行值更新列

时间:2017-06-13 13:33:04

标签: python performance loops pandas numpy

我有一个包含200万行和3列的pandas数据帧。我需要根据每个键的最后3个值更新计数器列。在行迭代中,我保留数组项中任意键的最后3个值,并计算数组中所有项目大于2的次数(如果所有项目> 2为该键添加10个计数器)

最初,有两个数组用于ID = 1和ID = 2

for ID=1, window=[1,1,1]  and for ID=2, window=[1,1,1]

ID value counter
1   3     0
1   2     0
2   1     0     
1   2     0
2   4     0
2   6     0
1   3     0
1   2     0
1   1     0
2   3     0
1   4     0
1   5     0

它将是:

ID value counter
1   3     0
1   2     0
2   1     0     
1   2     10
2   4     0
2   6     0
1   3     20
1   2     30
1   1     30
2   3     10
1   4     30
1   5     30

ID = 1 ==> [1,1,1] [1,1,3] [1,3,2] [3,2,2] [2,2,3] [2,3,2] [3,2,1] [ 2,1,4] [1,4,5]

ID = 2 ==> [1,1,1] [1,1,1] [1,1,4] [1,4,6] [4,6,3]

问题是迭代行需要花费太多时间。有什么改善表现的建议吗?如果问题不是很清楚,请提前抱歉。

0 个答案:

没有答案