Мои данные выглядят как ниже.
col_1 col_2
1 1
1 1
p 0
1 1
n 2
n 2
p 0
p 0
Я хочу вычислить значения в col_2 из col_1. Логика c, которую я хочу применить: Когда значение col_1 = 'p', заменить значение в col_2 из значения col_2 предыдущей строки и других значений в col_2 не изменится ни для какого другого значения col_1 и ожидаемого конечного результата выглядит следующим образом:
col_1 col_2
1 1
1 1
p **1**
1 1
n 2
n 2
p **2**
p **2**
Я рассчитываю эти столбцы в дополнение к другим на основе даты в функции assign (). Это единственный шаг, который я не могу понять. Потому что в этом я смотрю на значение предыдущего ряда; так что shift () может работать, но мне нужно только искать предыдущее значение для col_2, когда col_1 = 'p'. В настоящее время я делаю это через l oop, что дает мне возможность оглянуться назад на 1 строку и проверить / заменить значение. Потому что для l oop это не эффективное решение.
Знаете ли вы, как избежать a для l oop и сделать это более pandas способом?