我正在尝试在数据框中创建一个列,该列引用上个月末的另一列中的值。像这样......
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] = ???
有没有人遇到过这个?
答案 0 :(得分:1)
使用is_month_end==True
设置df['SD']
的值后,您可以使用NAs
methiod完整ffill
- 前向填充值。
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