pandas bta-lib错误:尝试使用rsi指示符,但给出ValueError:无法使用长度与值不同的切片索引器进行设置

l3zydbqr  于 2023-03-06  发布在  其他
关注(0)|答案(2)|浏览(110)

我尝试使用bta-lib来计算rsi指示器,尽管它与sma函数配合使用很好,但rsi函数“”“上出现错误

df=pd.read_csv('prices.csv')
sma=btalib.sma(df,period=9)#works fine
rsi=btalib.rsi(df,period=14)#through an error

“”“错误=值错误:无法使用长度与值不同的切片索引器进行设置...我的df长度足够了。x1c 0d1x

tf7tbtn2

tf7tbtn21#

将打开时间设置为索引

df=pd.read_csv('prices.csv')
df = df.set_index(['Open Time'])
sma=btalib.sma(df,period=9)
rsi=btalib.rsi(df,period=14)
bfnvny8b

bfnvny8b2#

我设法通过将“close”赋值为float来修复RSI函数。它作为str存储在Pandas Dataframe 中,RSI函数不喜欢它。但SMA在它还是一个str时不知何故工作正常。

df['close'] = df['close'].astype(float)

但是... bta_lib也使用了panda的append函数,现在已经不推荐使用了。我做了一些改动,编辑了库来修复这个问题,然后RSI就正常工作了。我把www.example.com的第lines.py302行改为:

trailer = pd.concat([trailprefix, series[p2:]])

不知道你的问题是否相同,但希望这能帮助一些人。

相关问题