【发布时间】:2016-01-25 09:02:14
【问题描述】:
我已经修改了我的代码并对其进行了评论以用于发布目的,我是 numpy 的新手,无法弄清楚为什么它不让我绘制这个,它是一个格式正确的日期与浮点数的数组。
如果有人能提供任何建议,将不胜感激
import datetime as dt
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import io
#----------------------------------------------------------
#Takes JSON data from online source and saves to .csv
URL_LTC = 'http://cryptocoincharts.info/fast/period.php?pair=LTC-USD&market=bitfinex&time=alltime&resolution=1d'
URL_BTC = 'http://cryptocoincharts.info/fast/period.php?pair=BTC-USD&market=bitfinex&time=alltime&resolution=1d'
data_LTC = pd.read_json(URL_LTC)
data_BTC = pd.read_json(URL_BTC)
data_BTC.to_csv('BTC_USD_PANDAS.csv')
data_LTC.to_csv('LTC_USD_PANDAS.csv')
#----------------------------------------------------------
#reads in data from csv
df_BTC = pd.read_csv('BTC_USD_PANDAS.csv',parse_dates=[0], dayfirst=True)
df_LTC = pd.read_csv('LTC_USD_PANDAS.csv',parse_dates=[0], dayfirst=True)
# turn into a numpy data array
BTC_data = df_BTC.values
LTC_data = df_LTC.values
#select the colums
offset = 6 #LTC starts 6 days before BTC
BTC_prices = BTC_data[1:269, 5:6]
LTC_prices = LTC_data[1+offset:269+offset, 5:6]
dates = BTC_data[1:269, 1:2]
#concatenate arrays
prices = np.hstack((BTC_prices,LTC_prices))
#plot data
plt.clf()
plt.plot(dates, prices)
plt.legend(['BTC','LTC'])
plt.ylabel('Close')
plt.xlabel('Date')
plt.savefig('BTC_LTC.pdf', format='pdf')
导致此错误(缩短版):
File "C:\Python27\lib\site-packages\matplotlib\lines.py", line 575, in recache
x = np.asarray(xconv, np.float_)
File "C:\Python27\lib\site-packages\numpy\core\numeric.py", line 462, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: invalid literal for float(): 2014-08-19 00
[Finished in 1.6s with exit code 1]
【问题讨论】:
-
错误很明显
2014-08-19 00不是,也不能被强制转换为浮点数。dates这里的 dtypes 是什么?还发布一些重现错误的数据
标签: python arrays numpy pandas matplotlib