【发布时间】:2013-11-18 05:56:25
【问题描述】:
在 R 的 xts 包中,有一个名为 endpoints 的函数,它给定一个 xts 对象,将返回一个给定月份、星期或任何用户指定频率返回的索引。如何使用 python 在 pandas 中做到这一点?
R:
endpoints(xts.object, "frequency")
Python:
from matplotlib.pylab import *
from pandas.io.data import DataReader
from datetime import datetime
symbols = ["SPY","IEF"]
data_holder = DataReader(symbols, "yahoo",datetime(2001,1,1))
adj_close = data_holder["Adj Close"] #adjusted close data
adj_close = adj_close.dropna() #drop NAs
adj_close.head() #inspect elements
我知道在 python 中使用"M" 作为参数的重采样函数将为我提供每月数据。但是有没有办法获取一个索引数组,使得这些索引中的每一个都引用数据框中的一行,即月末日期?
所以一个具体的例子,我使用的是伪代码:
month_ends = adj_close.someFunction("months") #gives me the index of each month ends
month_ends.head()
[22,41,62..etc]
adj_close[month_ends,] #should give me the same thing as resampled("M")
【问题讨论】:
-
您能否提供一个具体示例来说明您正在寻找什么?我猜你想要resampling。
-
为什么不通过
rpy2使用xts包?你接受这个作为解决方案吗? -
xts 相当慢,因此我正在使用 python。
-
如果我使用 XTS 的端点,你会怎么做?我已经安装了 rpy2 并导入了 xts。如何将 pandas 数据帧传递给 xts.endpoints 函数?