1

我有一个文本数据,例如:
16/12/2006;17:24:00;1.000;17.000
第一列是日期,第二列是时间,剩下的只是一些浮点数。现在我正在阅读文件,例如:

np.genfromtxt(path,
              dtype=(np.datetime64, np.datetime64, np.float16, np.float16),
              delimiter=';',
              converters = {0: lambda x: datetime.datetime.strptime(x, "%d/%m/%Y"),
                            1: lambda x: datetime.datetime.strptime(x, "%H:%M:%S")})

这会导致非常基本的问题,即第二列的默认日期设置为 1900 年 1 月 1 日。有没有办法在读取文件时或读取文件后结合前两列的日期和时间。

4

1 回答 1

2

您可以使用普通的 Python 命令阅读它并自己创建连接字段。然后,如果需要,您可以在其上运行转换器:

from datetime import datetime

fp = open("test.dat", "r")
lines = [ line.split(";") for line in fp.readlines() ]
fp.close()
fulldates = [ " ".join(line[0:2]) for line in lines if len(line) > 1 ]
converted = [ datetime.strptime(date, "%d/%m/%Y %H:%M:%S")
              for date in fulldates ]

该列表fulldates将包含连接数据+时间字段的列表。该列表converted将包含初始化的日期时间对象。(我添加if len(line) > 1过滤器只是为了处理文件中最终的空行。如果您的文件不包含任何内容,则可以省略它。)

于 2013-02-03T21:29:16.360 回答