python pandas: 试图引用另一列上月末的数据

python pandas: trying to reference data from another column's previous month end

我正在尝试在数据框中创建一个列,该列引用上个月末另一列中的值。像这样...

Date         SD SD.prevmo
02/29/00 0.0312 0.0312
03/01/00 0.0304 0.0312
03/02/00 0.0293 0.0312
03/03/00 0.0287 0.0312
  
03/28/00 0.0502 0.0312
03/29/00 0.0526 0.0312
03/30/00 0.0537 0.0312
03/31/00 0.0556 0.0556
04/03/00 0.0507 0.0556
04/04/00 0.0532 0.0556
04/05/00 0.0536 0.0556

包括 BMonthEnd() 在内的 DateOffset 功能似乎有答案,所以我一定是在砍掉一些不太复杂的东西。

df.ix[df.index.is_month_end==True, SD.prevmo] = df[SD]
df.ix[df.index.is_month_end==False, SD.prevmo] = ???

有没有人运行以前参与过这个?

使用 df['SD'] 设置 is_month_end==True 的值后,您可以使用 ffill 方法填充 NAs - 向前填充值。

In [10]: df.ix[df.index.is_month_end==True, 'SD.prevmo'] = df['SD']
In [11]: df['SD.prevmo'].fillna(method='ffill')
Out[11]:
Date
2000-02-29    0.0312
2000-03-01    0.0312
2000-03-02    0.0312
2000-03-03    0.0312
2000-03-28    0.0312
2000-03-29    0.0312
2000-03-30    0.0312
2000-03-31    0.0556
2000-04-03    0.0556
2000-04-04    0.0556
2000-04-05    0.0556
Name: SD.prevmo, dtype: float64