我有一个 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 之前确保所有数据类型都是您想要的。
添加回答
举报
0/150
提交
取消