首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当针对日期numpy绘制值数组时,ValueError

当针对日期numpy绘制值数组时,ValueError
EN

Stack Overflow用户
提问于 2016-01-25 09:02:14
回答 1查看 86关注 0票数 0

我修改了我的代码并对其进行了注释,以供发布,我对numpy并不熟悉,也不知道为什么它不让我画这个,它是一个格式正确的日期和浮动的数组。

如果有人能给出任何建议,我们会非常感激的。

代码语言:javascript
复制
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')

结果出现此错误(缩短版本):

代码语言:javascript
复制
  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] 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-25 09:31:21

日期的列号可能是错误的,请尝试parse_dates=[1]

代码语言:javascript
复制
df_BTC = pd.read_csv('BTC_USD_PANDAS.csv',parse_dates=[1], dayfirst=True)
df_LTC = pd.read_csv('LTC_USD_PANDAS.csv',parse_dates=[1], dayfirst=True)

在生成的.csv文件中,日期位于第二个字段中,而不是第一个字段中。

修改后的日期是一个时间戳数组,而不是字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34988578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档