使用替换函数计算 Pandas 数据框列

Calculate Pandas dataframe column with replace function

我正在计算 Pandas 数据框中的一个字段。学习Python,我正在努力寻找最好的方法。 Dataframe 非常大,超过 5500 万行。它有几列,其中 datefailure 符合我的兴趣。所以数据框看起来像这样:

date failure
2018-09-09 0
2016-05-12 1
2013-12-12 1
2018-05-12 1
2018-05-12 1

我要计算failure_date(if failure = 1 then failure_date = date).

试过了像这样:

import pandas as pd
abc = pd.read_pickle('data_abc.pkl')
abc['failure_date'] = abc['failure'].replace(1, abc['date'])

会话忙了很长时间 (1.5h)。目前还没有结果。这是正确的方法吗? 根据其他条件计算列的方法是否更有效?

此代码添加一列 "failure_date" 并将其设置为失败的失败日期。它没有解决 "non-failures".

abc.loc[abc['failure']==1, 'failure_date'] = abc['date']

如果您不介意丢弃数据框的其余部分,您可以像这样获取失败为 1 的所有日期

abc = abc[abc['failure] == 1]