如何根据熊猫中的某些条件保存上一行索引

问题描述

我正在尝试根据某些条件来保存上一行的索引/日期。

此操作的速度至关重要,因此我正在尝试使用向量化操作,但到目前为止没有成功。

例如,我有以下数据框:

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