我有一个大数据数据,我想把它写到磁盘上,以便快速检索。我相信to_hdf(...)会推断列的数据类型,有时会出错。我想知道怎样才是正确的方法来处理这个问题。
import pandas as pd
import numpy as np
length = 10
df = pd.DataFrame({"a": np.random.randint(1e7, 1e8, length),})
# df.loc[1, "a"] = "abc"
# df["a"] = df["a"].astype(str)
print(df.dtypes)
df.to_hdf("df.hdf5", key="data", format="table")取消注释不同的行将我引向以下内容。
int32并无问题地存储。abc将数据更改为对象,但似乎to_hdf内部推断另一种数据类型并引发错误:TypeError: object of type 'int' has no len()str将导致成功,而to_hdf存储数据。现在我想知道在第二种情况下发生了什么,是否有办法防止这种情况发生?我发现的唯一方法是查看所有列,检查它们是否为dtype('O'),并将它们解释为str。
发布于 2020-09-28 14:16:38
我没有使用hdf5,而是找到了一个通用的泡菜库,它看起来非常适合这个工作:吉卜卜。
存储和加载数据是直接的:
import joblib
joblib.dump(df, "file.jl")
df2 = joblib.load("file.jl")https://stackoverflow.com/questions/63919142
复制相似问题