如何使用Pandas存储数据

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

现在我正在进口一个相当大的CSV每次我运行这个脚本的时候。有一个很好的解决方案,可以让数据文件在运行期间一直可用,这样我就不用花那么多时间等待脚本运行了吗?

提问于
用户回答回答于

df.to_pickle(file_name)  # where to save it, usually as a .pkl

然后,可以使用以下方法将其加载回:

df = pd.read_pickle(file_name)

注:在0.11.1之前saveload这是唯一的方法(他们现在被反对了to_pickleread_pickle分别)。

另一个流行的选择HDF5是使用提供非常快大型数据集的访问时间:

store = HDFStore('store.h5')

store['df'] = df  # save it
store['df']  # load it
用户回答回答于

他们比较:

  • 泡菜:原始ASCII数据格式
  • C库
  • 泡菜-p2:使用更新的二进制格式
  • JSON:标准库
  • 没有索引:像json,但是没有索引。
  • msgpack:二进制JSON替代方案
  • CSV
  • hdfstore:hdf 5存储格式

在他们的实验中,他们序列化了一个1,000,000行的DataFrame,并分别测试了两列:一列是文本数据,另一列是数字。他们的免责声明说:

不应该相信下面的内容会泛化到您的数据中。您应该查看自己的数据并自己运行基准测试。

它们所引用的测试的源代码是可用的。由于这段代码不能直接工作,所以我做了一些小的更改,可以在这里获得结果:

在他们的测试中,速度大约是原来的10倍.

编辑:腌制时间比CSV高,可用数据格式来解释。默认情况下PICKLE使用可打印的ASCII表示,它生成更大的数据集。但是,从图中可以看出,使用更新的二进制数据格式(版本2)进行筛选。pickle-p2)负载时间要短得多。

扫码关注云+社区