我想将日期时间放入数组中,有解决方案吗?我是新手
import csv
from datetime import datetime
date = []
price = []
tdate = []
tprice = []
with open('TSLA.csv', 'r') as csvfile:
csvR = csv.reader(csvfile)
next(csvR) # skipping column names
for i,row in enumerate(csvR):
row_date = datetime.strptime(row[0], "%m/%d/%Y")
date.append(float(row_date))
price.append(float(row[5]))
如果您想看到错误:
File "csvtest.py", line 14, in <module>
date.append(float(row_date))
TypeError: float() argument must be a string or a number, not 'datetime.datetime'
更新
with open('TSLA.csv', 'r') as csvfile:
csvR = csv.reader(csvfile)
next(csvR) # skipping column names
for i,row in enumerate(csvR):
ts = time.strptime(row[0], "%m/%d/%Y")
time.mktime(ts)
date.append(float(ts))
price.append(float(row[5]))
错误:
TypeError: float() argument must be a string or a number, not 'time.struct_time'
答案 0 :(得分:0)
在这里转换为float并不是很有用。但是,您可以将datetime对象转换为timestamp对象。
考虑到第[0]行包含一个日期时间对象,则应执行以下操作:
import time
timestamp = time.mktime((row[0].timetuple())
timestamp
是从日期时间对象生成的UTC时间戳。
更新:
观察到行[0]以字符串格式保存日期。
>>> import time
>>> ts = time.strptime("10/10/2018", "%m/%d/%Y")
>>> time.mktime(ts)
>>> 1539109800.0
答案 1 :(得分:0)
喜欢
with open('TSLA.csv', 'r') as csvfile:
csvR = csv.reader(csvfile)
next(csvR) # skipping column names
for i,row in enumerate(csvR):
date.append(datetime.strptime(row[0],'%m/%d/%Y'))
price.append(float(row[5]))
if(i >= 25):
tdate.append(float(row[7]))
tprice.append(float(row[5]))
break