繁体   English   中英

将 dataframe 保存到磁盘会丢失 numpy 数据类型

[英]Saving dataframe to disk loses numpy datatype

我有一个大的 dataframe,我需要将其保存到磁盘。 列的类型有 numpy.int32 或 numpy.floatxx

             int32Data     ColumName  ...  float32Data  otherTypeData
0        150294240   4260.0  ...                  3.203908e+02  7960.0
1        150294246   4260.0  ...                  0.000000e+00  7960.0
2        150294252   4280.0  ...                  1.117543e+03  7960.0
3        150294258   4260.0  ...                  5.117185e+01  7960.0
4        150294264   4260.0  ...                  5.999993e+02  7960.0
           ...      ...  ...                           ...     ...
1839311  161375508  54592.0  ...                  8.990022e+05     0.0
1839312  161375514  54624.0  ...                  2.097199e+06     0.0
1839313  161375520  54656.0  ...                  1.192150e+06     0.0
1839314  161375526  54688.0  ...                  1.249997e+06     0.0
1839315  161375532  54592.0  ...                  8.949273e+05     0.0

使用正确的数据类型可以节省大量空间和处理能力。

但是当我将 dataframe df 保存到磁盘时

np.save(FilePath,df)

并重读

ReadData=np.load(FilePath).tolist()
df=DataFrame(ReadData)

然后将所有数据转换为 numpy.float64 (并擦除列名)

是否可以在保留每列(和列名)的数据类型的同时保存和加载 dataframe?

HDF5存储可能正是您正在寻找的,它可以让您高效地存储大量数据,保存数据类型并让您非常快速地检索数据。 您可以在文档中找到更多详细信息。

如何使用它的一个例子:

import pandas as pd

with pd.HDFStore(file_path) as hdf:
  # to save the dataframe to the HDF
  hdf.put(key, df)

  # and to retrieve it later
  df = hdf.get(key)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM