2016-10-30 75 views
0

我试图绘制两个股票价格的滚动关联。此功能用于工作,但由于某种原因,它现在不起作用。例如,我下载AAPL和TSLA股票数据,然后将其调整后的价格分为两个系列。例如,我下载AAPL和TSLA股票数据,然后将其调整后的价格分为两个系列。然后我尝试运行一个滚动关联图。我收到以下错误:Python:Rolling Correlation Plot结果“ValueError:无法将字符串转换为浮点数:”

“ValueError异常:无法将字符串转换为float:“2013年1月2" 日从雅虎数据

import numpy as np 
randn = np.random.randn 
import pandas as pd 
import matplotlib.pyplot as plt 
import matplotlib as mpl 
import matplotlib.pylab as pylab 
%matplotlib inline 
from yahoo_finance import Share 

start = '2013-01-01' 
end = '2015-01-01' 
TSLA=pd.DataFrame(Share('TSLA').get_historical(start, end)) 
TSLA=TSLA.set_index('Date') 
AAPL=pd.DataFrame(Share('AAPL').get_historical(start, end)) 
AAPL=AAPL.set_index('Date') 

TSLA_px=TSLA['Adj_Close'] 
AAPL_px=AAPL['Adj_Close'] 

rolling_correlation = pd.rolling_corr(TSLA_px, AAPL_px, 60) 
plt.plot(rolling_correlation) 
plt.xlabel('Day') 
plt.ylabel('60-day Rolling Correlation') 
+0

难道你是*导入'pandas',但调用'pd.DataFrame'和'pd.rolling_corr'?请尝试'将pandas导入为pd'。即使它不能解决你的问题,这也是更好的做法。 – lanery

+0

谢谢Lanery,赶上!深夜编码......不能解决问题,但你是对的! –

回答

1

愚蠢的小白错误...日期在作为一个字符串,并需要转换为日期。

TSLA['Date']=pd.to_datetime(TSLA['Date']) 
+0

好的电话。我刚刚重新回顾了你的问题,并作出了相同的认识。 FWIW,'pandas_datareader'可以为您提供比'yahoo_finance'包更好的服务,http://pandas-datareader.readthedocs.io/en/latest/remote_data.html。 – lanery

相关问题