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

时间:2019-02-20 10:03:06

标签: python pandas dataframe vectorization pandas-apply

我正在尝试执行以下操作:

对于满足“ B”列条件的“ A”列的每一行,我想将“ 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))

有什么想法吗?

0 个答案:

没有答案