CSV文件转换为日期格式

2024-09-30 16:39:58 发布

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

我想在一个csv文件的日期(如下所示)和循环通过它使用太阳.GetAltitude在每个日期计算一个太阳高度表。(我在Windows7Enterprise上使用Python2.7.2。)

CSV file: TimeStamp 01/01/2014 00:10 01/01/2014 00:20 01/01/2014 00:30
01/01/2014 00:40

我的代码给出以下错误ValueError: unconverted data remains:。这表明日期格式是错误的,但它适用于单个日期,而不是一串日期。在

我仔细研究了堆栈溢出这一主题。我也尝试过map函数,np.datetime64并读取列表而不是字符串,但是在引用no attribute 'year'时得到了不同的错误。在

我真的很感谢你的帮助,因为我没什么主意了。在

^{pr2}$

Tags: 文件csv代码data格式错误timestampfile
2条回答

非常感谢维克拉米斯和卢茨霍恩的帮助和意见。在尝试了Vikramis的代码之后,我得到了一个可以工作的版本,我在下面复制了这个版本。在

我的错误发生在第40行:

minutes.append(datetime.datetime.strptime(result,'%d/%m/%Y %H:%M'))

我发现我需要从列表中创建一个字符串,以避免以下错误“TypeError:must be string,not list”。我现在已经通过使用(str(date)替换for循环来整理这个问题,希望使用更合理的名称。在

我的问题是格式问题。必须是这样 “[%d/%m/%Y%H:%m']”“因为我访问的是列表中的项目,而不是”“%d/%m/%Y%H:%m'”,它在shell中只对一个日期有效。在

^{pr2}$

首先,代码没有正确缩进,这使得猜测更加困难。在

我认为datetime.datetime.strptime的输入不正确。使用'\n'.join(...)创建result,但格式字符串不包含'\n'。从日期列表中创建字符串对我来说似乎没有必要。在

我想你想要的是:

for date in dates:
    minutes.append(datetime.datetime.strptime(date, '%d/%m/%Y %H:%M'))

请注意,您用于列表的名称具有误导性,因为minutes包含datetime.datetime对象,而不是分钟值!在

相关问题 更多 >