我有一个包含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]
问题是迭代行需要花费太多时间。有什么改善表现的建议吗?如果问题不是很清楚,请提前抱歉。