【问题标题】:converting datetime object to float in python reading csv将日期时间对象转换为在 python 中浮动读取 csv
【发布时间】:2019-01-09 17:57:52
【问题描述】:

我想把日期时间放到一个数组中,有解决办法吗?我是新手

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'

【问题讨论】:

  • 当您将日期时间转换为浮点数时,您期望输出什么?
  • 我想将日期放入 matplotlib.pyplot 来绘制图表,我该怎么做?因为像 20171140 这样的格式不是连续的

标签: python csv datetime


【解决方案1】:

此处转换为浮点数的信息量不是很大。但是,您可以将 datetime 对象转换为时间戳对象。

考虑到 row[0] 包含一个日期时间对象,如下所示应该可以:

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

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

更新:

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

>>> import time 
>>> ts = time.strptime("10/10/2018", "%m/%d/%Y")
>>> time.mktime(ts)
>>> 1539109800.0

【讨论】:

  • TypeError: float() 参数必须是字符串或数字,而不是'time.struct_time
【解决方案2】:

喜欢

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 2017-01-08
    • 2016-11-14
    • 2019-05-20
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    相关资源
    最近更新 更多