Я пытаюсь сделать следующее:
Для каждой строки столбца «A», где выполняется условие в столбце «B», я хотел бы заменить значение в столбце «A» напервый элемент моего списка 'end', а затем удалите первый элемент, чтобы в следующей строке был выбран ранее «второй» элемент в списке.
Если бы я делал это с циклом for, это выглядело бы так, предполагая, что условием является то, что значение B в предыдущей строке равно True (B содержит только логические значения):
for i in range(1, len(data)-1):
if data.loc[i, 'B'].shift(-1) == True:
data.loc[i, 'A'] = end[0]
del end[0]
Поскольку мой df огромен, я ищу векторизованную версию, но, очевидно, мой подход не работает, он всегда берет только первый элемент списка:
data['A'][data['B'].shift(-1)== True] = data['A'].apply(lambda x: end.pop(0))
Есть идеи?