Я пытаюсь заменить значение в текущей строке на основе предыдущей строки, если выполнены определенные условия.
Условия:
Текущийстрока 0
Предыдущая строка: C
Внутри группы (предпочтительно, но, вероятно, будет работать без нее)
Пример кадра данныхпохож на мой:
ID Week value
4 1 W
4 2 C
4 3 0
4 4 0
24 1 W
24 2 W
24 3 0
24 4 A
Пример того, как мне нужно, чтобы он выглядел:
ID Week value
4 1 W
4 2 C
4 3 C
4 4 C
24 1 W
24 2 W
24 3 0
24 4 A
Вопросы других, которые я не могукажется, переделывается или не совсем подходит для моей проблемы:
- условная замена на основе предыдущего значения в том же столбце Python DataFrame Python
- условное изменение ряда панд с предыдущим значением строки
Код для построения кадра данных, аналогичного моему
import pandas as pd
df = pd.DataFrame({'ID': {0:'4', 1:'4', 2:'4', 3:'4', 4:'24', 5:'24', 6:'24', 7:'24'}, 'Week': {0:'1', 1:'2', 2:'3', 3:'4', 4: '1', 5:'2', 6:'3', 7:'4'}, 'value': {0:'W', 1:'C', 2:'0', 3:'0', 4: 'W', 5:'W', 6:'0', 7:'A'} })
df[['ID', 'Week']] = df[['ID', 'Week']].astype('int')
Плохо сработала попытка решить проблему (выдает ошибки)
for i in range(1, len(df)):
if df.value[i] == '0' and df.value[i-1] == 'C':
df.value[i] = 'C'
else:
df.value[i] = df.value[i]