我有一个文本数据,例如:
16/12/2006;17:24:00;1.000;17.000
第一列是日期,第二列是时间,剩下的只是一些 float 。现在我正在阅读如下文件:
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 日。有没有某种方法可以在读取文件时或读取文件后合并前两列的日期和时间。
最佳答案
您可以使用简单的 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
过滤器仅用于处理文件中最终的空行。如果您的文件不包含任何空行,则可以忽略它。)
关于python - 读取文件并连接numpy数组中的两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677096/