我正在寻找一种在DataFrame
的每一列上有效执行特定操作的方法。在每一列中,如果一个条目后跟一个由相同数字组成的序列,该序列低于该条目,再次输入该条目,并且该序列不长于 k ,则填写顺序由"包围"条目。
例如,假设 k = 2 。然后,以下DataFrame
0 1 2 3 4
0 6 6 6 6 6
1 7 7 5 6 6
2 7 7 5 5 5
3 6 7 5 5 5
4 5 6 6 6 9
5 9 9 9 9 6
应转换为:
0 1 2 3 4
0 6 6 6 6 6
1 7 7 5 6 6
2 7 7 5 6 5
3 6 7 5 6 5
4 5 6 6 6 9
5 9 9 9 9 6
请注意,只填充了第3列中5的序列。在列0和1中,7的序列保持不变,因为 7> 6 。在第2列中, 5< 6 但序列的长度为3,高于 k = 2 。第4列保持不变,因为5的序列之后是一个与其前面的条目(6)不同的条目(9)。
填写条件摘要::
我可以在一个循环中完成它,但由于我的DataFrame
很大,所以需要很长时间。有人可以提出一种有效的(速度)方法吗?