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
我正在尝试在数据框中创建一个列,该列引用上个月末另一列中的值。像这样...
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