在python读取cs中将datetime对象转换为float

2024-09-28 20:55:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把datetime放入数组中,有解决方案吗?我是新手

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]))

如果要查看错误:

^{pr2}$

更新

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'

Tags: csvcsvfileimportdatetimedatetimewithopen
2条回答

在这里转换成float不是很有用。但是,您可以将datetime对象转换为timestamp对象。在

考虑到第[0]行包含一个datetime对象,下面这样的方法应该有效:

import time
timestamp = time.mktime((row[0].timetuple())

timestamp将是从datetime对象生成的UTC时间戳。在

更新:

观察到第[0]行包含字符串格式的日期。在

^{pr2}$

斯洛伐克语

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

相关问题 更多 >