如何解决使用vaex从CSV转换为HDF5时保留日期时间类型
我有一个带有时间列的csv文件,用于存储时间戳。使用vaex.from_csv()方法将此文件转换为hdf5格式后,time列中的值为字符串。例如:
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将时间戳识别为datetime(或np.datetime64)?
解决方法
我认为问题在于,当您将数据从csv转换为hdf5时,数据类型为字符串。我的测试表明,使用日期时间和timedelta数据类型保存和打开hdf5并没有问题。
查看文件名,您可能使用了类似的
df = vaex.read_csv(path_to_csv,convert=True)
在这种情况下,vaex(或大熊猫,因为read_csv
只是pd.read_csv
的包装,并带有一些其他选项)不知道列应该是字符串还是日期时间,因此默认情况下选择字符串,然后将其传播。
使用类似
df = vaex.read_csv(path_to_csv,parse_dates=['my_date_column'],convert=True)
应该可以解决问题。
如果我的假设是错误的,只需在导出到HDF5之前确保所有dtypes符合您的要求即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。