为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

鸿蒙传说 2023-09-19 14:41:23
我有一个 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)?
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

我认为问题在于,当您将数据从 csv 转换为 hdf5 时,数据类型是字符串。我的测试显示保存和打开具有 datetime 和 timedelta 数据类型的 hdf5 没有问题。

查看文件名,您可能使用了类似的内容

df = vaex.read_csv(path_to_csv, convert=True)

在这种情况下,vaex(或 pandas,因为read_csv只是带有pd.read_csv一些额外选项的包装器)不知道列应该是字符串还是日期时间,因此默认情况下它选择字符串,然后进行传播。

使用类似的东西

df = vaex.read_csv(path_to_csv, parse_dates=['my_date_column'], convert=True)

应该可以解决问题。

如果我的假设是错误的,只需在导出到 HDF5 之前确保所有数据类型都是您想要的。


查看完整回答
反对 回复 2023-09-19
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信