0
我正在使用如下所示的熊猫数据框DF。 DF中的所有元素都是正整数或0.在pandas数据框中删除行:每次满足特定条件时删除前k行
如果列“c”在第i行包含等于k的值,使得k大于或等于2,我想删除第i行,行(i-1),...和行(i-(k-1))(总共k行被删除)。我只要求行被删除时柱“c”的具有至少2
在该示例中的值,这种情况发生一次,其中所讨论的数“k”等于3,并且在发现第5行(所以我删除了第5,4和3行 - 总共三行,包括包含'3'值的行)。
注意,如果列'c'的第j行等于k,则前面的k-1行肯定等于0,这意味着如果行j被删除,所有其他行被删除的列c中只包含零。
有没有人有任何想法如何做到这一点?
对于具有所需的结果的示例数据帧的图像,请参阅https://i.imgur.com/2QpC7JF.png:
数据帧:
A = matrix([[9, 9, 0, 9, 9],
[1, 2, 1, 9, 9],
[8, 8, 0, 2, 3],
[7, 7, 0, 7, 8],
[1, 2, 0, 3, 4],
[6, 6, 3, 6, 6],
[1, 2, 0, 1, 2]])
DF = pd.DataFrame(A)
DF.columns = ['a', 'b', 'c', 'd', 'e']
谢谢。这工作(只需要添加1范围函数的两个参数)。 –