0

h5和hdf文件有什么区别?我应该使用其中一个吗?我尝试使用以下两个代码执行 timeit,每个循环大约需要 3 分 29 秒,文件大小为 240mb。我最终在第二个代码上遇到了错误,但磁盘上的文件大小超过了 300mb。

hdf = pd.HDFStore('combined.h5')
hdf.put('table', df, format='table', complib='blosc', complevel=5, data_columns=True)
hdf.close()


df.to_hdf('combined.hdf', 'table', format='table', mode='w', complib='blosc', complevel=5)

另外,我收到一条错误消息,上面写着:

your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types

这是由于字符串列由于空白值而成为对象。如果我使用 .astype(str),则所有空格都将替换为 nan(甚至出现在输出文件中的字符串)。我是否担心错误消息并填写空白并稍后用 np.nan 再次替换它们,或者只是忽略它?

这是 df.info() 显示有一些列有空值。我无法删除这些行,但如果需要,我可以暂时用一些东西填充它们。

<class 'pandas.core.frame.DataFrame'>
Int64Index: 1387276 entries, 0 to 657406
Data columns (total 12 columns):
date                          1387276 non-null datetime64[ns]
start_time                    1387276 non-null datetime64[ns]
end_time                      313190 non-null datetime64[ns]
cola                          1387276 non-null object
colb                          1387276 non-null object
colc                          1387276 non-null object
cold                          476816 non-null object
cole                          1228781 non-null object
colx                          1185679 non-null object
coly                          313190 non-null object
colz                          1387276 non-null int64
colzz                         1387276 non-null int64
dtypes: datetime64[ns](3), int64(2), object(7)
memory usage: 137.6+ MB
4

0 回答 0