问题描述
我正在尝试根据某些条件来保存上一行的索引/日期。
此操作的速度至关重要,因此我正在尝试使用向量化操作,但到目前为止没有成功。
例如,我有以下数据框:
dates = pd.date_range('1/1/2000',periods=10)
data = {'date': dates}
df = pd.DataFrame.from_dict(data)
df['condition'] = [False,False,True,False]
df['desired_result'] = [np.nan,np.nan,df.iloc[2]['date'],df.iloc[3]['date'],df.iloc[5]['date'],np.nan]
date condition desired_result
[0: 2000-01-01 00:00:00 False NaT],[1: 2000-01-02 00:00:00 False NaT],[2: 2000-01-03 00:00:00 True NaT],[3: 2000-01-04 00:00:00 True 2000-01-03 00:00:00],[4: 2000-01-05 00:00:00 False NaT],[5: 2000-01-06 00:00:00 True 2000-01-04 00:00:00],[6: 2000-01-07 00:00:00 False NaT,[7: 2000-01-08 00:00:00 False NaT,[8: 2000-01-09 00:00:00 True 2000-01-06 00:00:00],[9: 2000-01-10 00:00:00 False NaT],
由于缺乏知识,我在“保存”先前的有效行时遇到问题。我该如何做到呢?
解决方法
以下方法应该起作用:
compareWith