【发布时间】:2019-01-05 16:00:37
【问题描述】:
初学者问题 - 我正在尝试将 CSV 文件导入 python,但日期格式似乎有问题
path =".csv"
file = open(path, newline='')
reader = csv.reader(file)
header = next(reader)
data = []
for row in reader:
#row = [Date,Open,High,Low,Close,Adj Close,Volume]
date = datetime.strptime(row[0], '%Y-%m-%d')
open_price = float(row[1])
high = float(row[2])
low = float(row[3])
close = float(row[4])
adj_close = float(row[5])
volume = int(row[6])
data.append([date, open_price, high, low, close, adj_close, volume])
print(data[0])
我得到的错误信息是
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-ace6c5a0e17d> in <module>
11 for row in reader:
12 #row = [Date,Open,High,Low,Close,Adj Close,Volume]
---> 13 date = datetime.strptime(row[0], '%Y-%m-%d')
14 open_price = float(row[1]) # 'open' is built-in function in python
15 high = float(row[2])
~/anaconda3/lib/python3.7/_strptime.py in _strptime_datetime(cls, data_string, format)
575 """Return a class cls instance based on the input string and the
576 format string."""
--> 577 tt, fraction, gmtoff_fraction = _strptime(data_string, format)
578 tzname, gmtoff = tt[-2:]
579 args = tt[:6] + (fraction,)
~/anaconda3/lib/python3.7/_strptime.py in _strptime(data_string, format)
360 if len(data_string) != found.end():
361 raise ValueError("unconverted data remains: %s" %
--> 362 data_string[found.end():])
363
364 iso_year = year = None
ValueError: unconverted data remains: ;1048.339966;1066.939941;1045.229980;1065.000000;1065.000000;1237600`enter code here`
ValueError:未转换的数据仍然存在
这是什么意思以及如何理解它?非常感谢。
【问题讨论】:
-
我建议您使用 pandas.read_csv() 读取 csv,然后使用 pandas.to_datetime(date_columns, format='%d-%m-%Y') 您需要提供格式类型您的 csv 文件包含日期。