继续我以前的问题与时间数据不符合提供的格式(python - ValueError: time data does not match format),我需要帮助将字符串转换为数据。我下载了CSV文件here。它有一个标题行和7列,其中第一个表示日期,其他数字。蟒蛇 - 从csv字符串转换为日期和浮点格式
转换成列表首先,数据线看起来是这样的:
['2010-06-29', '19.000000', '25.000000', '17.540001', '23.889999', '23.889999', '18766300']
我希望能够得到一个numpy的阵列出来的:
import csv
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import urllib
def bytespdate2num(fmt, encoding="utf-8"):
strconverter = mdates.strpdate2num(fmt)
def bytesconverter(b):
s = b.decode(encoding)
return strconverter(s)
return bytesconverter
with open("TSLA.CSV", "r") as csvfile:
stock_price = csv.reader(csvfile, delimiter=",")
stock_price = list(stock_price)
date, closep, highp, lowp, openp, volume = np.loadtxt(stock_price,
delimiter = ",",
unpack = True,
skiprows=1,
# '2010-06-29'
converters={0: bytespdate2num("['%Y-%m-%d'")}
)
麻烦的是,我得到以下错误:
ValueError: time data "['2010-06-29" does not match format '%Y-%m-%d'
问题是日期前的['
。我尝试迭代列中的项目,并用[';'替换[';没有工作。然后我试图给出格式"['%Y-%m-%d'"
只是为了看看会发生什么。这让周围的错误(虽然我不开心与解决方案,当然),但有另一个问题:
ValueError: could not convert string to float: b' 18766300.0]'
我一派,这里搜查,但一无所获......
你有熊猫吗? –
我做;你将如何去解决这个问题呢? –