python pandas:尝试引用另一列上个月结束时的数据

时间:2015-09-29 21:52:30

标签: python datetime pandas indexing offset

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

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] = ???

有没有人遇到过这个?

1 个答案:

答案 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