Есть ли способ в Pandas изменить предыдущие строки на основе определенного значения строки? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть фрейм данных, где что-то происходит в каждой пятой строке. Я хотел бы представить столбец A ниже как обратный отсчет перед знаком «x» в каждом пятом испытании. Есть ли простой код, который я мог бы запустить, который находит каждый «x», а затем нумерует строки после них от 1 до 4?

В настоящее время:

index A  
1   1
2   2
3   3
4   4
5   x
6   6
7   7
8   8
9   9
10  x

Желаемый результат:

index A 
1   1
2   2
3   3
4   4
5   x
6   1
7   2
8   3
9   4
10  x

1 Ответ

1 голос
/ 07 мая 2020

Вместо того, чтобы пытаться посмотреть на него на основе положения строки в фактическом DataFrame, вы можете переформулировать проблему, чтобы она была связана с модульной арифметикой c. Вы хотите подсчитать испытания с помощью mod 5 arithmeti c. Вы можете использовать следующий оператор, который пометит номер испытания и присвоит каждому 5-му испытанию 'x' в качестве его значения:

df["A"] = df.index.map(lambda x: 'x' if x%5 == 0 else x%5)
...