python - 读取文件并连接numpy数组中的两列

标签 python datetime numpy genfromtxt

我有一个文本数据,例如:
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/

相关文章:

c# - DateTime 将日期显示为 01/01/0001

.net - 儒略日期形式的系统日期?

python - 二维和一维 Numpy 数组的交集

python - 在 macOS 上将 Python 3 安装到/usr/bin/

python - 用于在 Django Admin 中呈现外键的可扩展小部件

Python 使用 `time.strftime` 在格式化字符串中显示毫秒

python - 快速 numpy 滚动

python - 如何有效地将 tsv 文件中的数组列读取到每个列的单个 npz 文件中?

python - 如何在 Apache Beam/Google 数据流中将大窗口缩小为较小的窗口?

python - 棘手的中位数问题