Если этот шаблон всегда сохраняется, вы можете жестко закодировать некоторые решения: всякий раз, когда вы сталкиваетесь с 1 после 4, поместите предыдущие 4 индекса в список индексов, которые вы хотите удалить. Это не самый красивый код, но он работает.
import pandas as pd
df = pd.DataFrame({'position':
[1,2,3,4,5,6,
1,2,3,4,5,6,
1,2,3,4,
1,2,3,4,5,6]})
# every time you encounter a 1 after a 4, delete the previous four columns
index_delete = []
for index, values in enumerate(df.position.values[1:]):
if (values == 1) and (df.position.values[1:][index - 1] == 4):
index_delete.extend([index-3, index-2, index-1, index])
df = df.drop(index_delete)
Ввод:
df
position
0 1
1 2
2 3
3 4
4 5
5 6
6 1
7 2
8 3
9 4
10 5
11 6
12 1
13 2
14 3
15 4
16 1
17 2
18 3
19 4
20 5
21 6
Ввод:
df
position
0 1
1 2
2 3
3 4
4 5
5 6
6 1
7 2
8 3
9 4
10 5
11 6
16 1
17 2
18 3
19 4
20 5
21 6