Python TA-Lib不使用pandas系列

use*_*161 6 python numpy

我正在尝试在官方文档中描述的 Ubuntu 12.04上使用python中的TA-Lib .但是,当使用pandas时,DataFrame或者Series如不同来源的多个示例所示,我得到以下内容TypeError:

回溯(最近调用最后一次):文件"test1.py",第14行,分析['rsi'] = ta.RSI(spy.Close)TypeError:参数'real'的类型不正确(预期numpy.ndarray,得到系列)

执行例如此代码时:

import pandas.io.data as data
import pandas as pd
import talib as ta
import matplotlib.pyplot as plt

# Download SP500 data with pandas
spyidx = data.get_data_yahoo('SPY', '2013-01-01')
analysis = pd.DataFrame(index = spyidx.index)
analysis['rsi'] = ta.RSI(spyidx.Close)
Run Code Online (Sandbox Code Playgroud)

什么地方出了错?

MLi*_*ter 5

对于pandas> = 0.13.0:

将一个Series直接传递给一个期望ndarray类型的cython函数将不会直接工作,你必须通过Series.values

因此,在TA-lib修改其API以适应较新pandas版本之前,您需要使用Series.values或DataFrame.values.


小智 1

尝试

analysis = pd.DataFrame(index = spyidx.index.values)
Run Code Online (Sandbox Code Playgroud)