繼續我以前的問題與時間數據不符合提供的格式(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]'
我一派,這裏搜查,但一無所獲......
你有熊貓嗎? –
我做;你將如何去解決這個問題呢? –