使用 vaex 从 CSV 转换为 HDF5 时保留日期时间类型

我有一个 csv 文件,其中包含存储时间戳的时间列。使用 vaex.from_csv() 方法将此文件转换为 hdf5 格式后,时间列中的值是字符串。例如:


df = vaex.open("data.csv.hdf5")

time = df["time"].values[0]

print(time)

print(type(time))

输出是:


2020-09-30 01:02:03

<class 'str'>

我尝试将时间戳格式化为 ISO 8601,并存储带/不带引号。结果是一样的。从 csv 转换为 hdf5 时,是否有某种方法强制 vaex 将时间戳识别为日期时间(或 np.datetime64)?


鸿蒙传说
浏览 68回答 1
1回答

喵喔喔

我认为问题在于,当您将数据从 csv 转换为 hdf5 时,数据类型是字符串。我的测试显示保存和打开具有 datetime 和 timedelta 数据类型的 hdf5 没有问题。查看文件名,您可能使用了类似的内容df&nbsp;=&nbsp;vaex.read_csv(path_to_csv,&nbsp;convert=True)在这种情况下,vaex(或 pandas,因为read_csv只是带有pd.read_csv一些额外选项的包装器)不知道列应该是字符串还是日期时间,因此默认情况下它选择字符串,然后进行传播。使用类似的东西df&nbsp;=&nbsp;vaex.read_csv(path_to_csv,&nbsp;parse_dates=['my_date_column'],&nbsp;convert=True)应该可以解决问题。如果我的假设是错误的,只需在导出到 HDF5 之前确保所有数据类型都是您想要的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python