我是熊猫和拉链网的新手,我正在努力学习如何使用它们(并将它们与我现有的数据一起使用)。任何形式的建议,即使没有完整的解决方案,都将不胜感激。我尝试了很多方法,并且已经非常接近,但是遇到了索引问题,Exception: Reindexing only valid with uniquely valued Index objects
,尤其是。[熊猫0.10.0,Python 2.7]
我正试图将postgres中数千只股票的月收益数据从以下表格中转换:
ticker_symbol :: String, monthly_return :: Float, date :: Timestamp
例如
^{pr2}$注:报告的频率是每月一次,但这里会有相当多的NaN数据,因为我这里的6000多家公司并非都会同时出现。在
…到下面描述的表单,这是Zipline运行backtester所需要的。(我想。Zipline的backtester可以轻松地处理这样的月度数据吗?我知道它可以,但有什么窍门吗?)在
下面是一个数据帧(timeseries的?你怎么说,格式如下:
> data
:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2268 entries, 1993-01-04 00:00:00+00:00 to 2001-12-31 00:00:00+00:00
Data columns:
AA 2268 non-null values
AAPL 2268 non-null values
GE 2268 non-null values
IBM 2268 non-null values
JNJ 2268 non-null values
KO 2268 non-null values
MSFT 2268 non-null values
PEP 2268 non-null values
SPX 2268 non-null values
XOM 2268 non-null values
dtypes: float64(10)
下面是一个时间序列,是我需要的格式。在
> data.AAPL
:
Date
1993-01-04 00:00:00+00:00 73.00
1993-01-05 00:00:00+00:00 73.12
...
2001-12-28 00:00:00+00:00 36.15
2001-12-31 00:00:00+00:00 35.55
Name: AAPL, Length: 2268
注意,这里没有返回数据,而是价格。它们被调整了(通过Zipline的load_from_yahoo
-但是,从阅读源代码,实际上是通过pandas中的函数)来调整股息、拆分等,所以在这和我的回报数据之间有一个同构(减去初始价格)(所以,这里没有问题)。在
(编辑:如果你想让我写下我的东西,或者附上我的iPython笔记本或要点,请告诉我;我只是怀疑这是否有用,但如果有人要求,我绝对可以做到。)
我怀疑你把日期设为索引太早了。我的建议是首先将^{} 作为日期和公司名称,然后您可以^{} 公司名称和^{} 。在
像这样:
相关问题 更多 >
编程相关推荐