对 Python 缺乏经验,当我想迭代它们时,我无法正确处理 datetime 对象。我从 csv 文件导入时间戳并将它们解析为日期时间对象。现在我无法对它们执行功能,因为我一个接一个地收到错误。请查看我的代码,是什么导致“TypeError:'datetime.datetime' 对象不可迭代”。
如果我的问题没有简单的解决方案,有人可以告诉我如何将日期时间对象保存到列表中吗?
我的代码的功能受到这篇文章的启发,它适用于列表中的日期时间对象:Getting the nearest date to a given date
提前致谢。
from datetime import datetime, timedelta
import pandas as pd
from dateutil.parser import parse
csvFile = pd.read_csv('myFile.csv')
column = csvFile['timestamp']
column = column.str.slice(0, 19, 1)
dt1 = datetime.strptime(column[1], '%Y-%m-%d %H:%M:%S')
print("dt1", dt1) #output: dt1 2010-12-30 15:06:00
dt2 = datetime.strptime(column[2], '%Y-%m-%d %H:%M:%S')
print("dt2", dt2) #output: dt2 2010-12-30 16:34:00
dt3 = dt1 - dt2
print("dt3", dt3) #output: dt3 -1 day, 22:32:00
#parsing the timestamps as datetime objects works:
for row in range(len(column)):
timestamp = datetime.strptime(column[row], '%Y-%m-%d %H:%M:%S')
print("timestamp", timestamp) #output (excerpt): timestamp 2010-12-30 14:32:00 timestamp 2010-12-30 15:06:00
这里发生错误:
base_date = dt1
def func(x):
d = x[0]
delta = d - base_date if d > base_date else timedelta.max
return delta
min(timestamp, key = func)