我有一个文本数据,如:
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")})
这导致非常基本的问题,其中第二列的默认日期设置为1月1,100。有没有办法在读取文件时或读取文件后组合前两列的日期和时间。
答案 0 :(得分: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
将包含初始化的datetime对象。 (我添加if len(line) > 1
过滤器只是为了处理文件中的最终空行。如果你的文件不包含任何空行,你可以省略它。)