Python 用列表中的值替换数据框中的单元格值(矢量化)

Python 用列表中的值替换数据框中的单元格值(矢量化),python,pandas,dataframe,vectorization,pandas-apply,Python,Pandas,Dataframe,Vectorization,Pandas Apply,我正在努力做到以下几点: 对于满足“B”列条件的“A”列的每一行,我希望用列表“end”的第一个元素替换“A”列中的值,然后删除第一个元素,以便下一行使用列表中先前的“第二个”元素 如果我使用for循环,它看起来是这样的,假设条件是前一行中B的值为True(B只包含布尔值): 由于我的df很大,我正在搜索矢量化版本,但显然我的方法不起作用,它总是只使用列表中的第一个元素: data['A'][data['B'].shift(-1)=True]=data['A'].apply(lambda x:e

我正在努力做到以下几点:

对于满足“B”列条件的“A”列的每一行,我希望用列表“end”的第一个元素替换“A”列中的值,然后删除第一个元素,以便下一行使用列表中先前的“第二个”元素

如果我使用for循环,它看起来是这样的,假设条件是前一行中B的值为True(B只包含布尔值):

由于我的df很大,我正在搜索矢量化版本,但显然我的方法不起作用,它总是只使用列表中的第一个元素:

data['A'][data['B'].shift(-1)=True]=data['A'].apply(lambda x:end.pop(0))

有什么想法吗

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]