将pandas数据框保存为pickle和csv有什么区别?

时间:2018-02-13 15:46:41

标签: python pandas csv pickle

我正在学习python pandas。 我看到一个教程,它显示了两种保存pandas数据帧的方法。

  1. pd.to_csv('sub.csv')并打开pd.read_csv('sub.csv')

  2. pd.to_pickle('sub.pkl')并打开pd.read_pickle('sub.pkl')

  3. 教程说to_pickle是将数据帧保存到磁盘。我很困惑。因为当我使用to_csv时,我确实看到文件夹中出现了一个csv文件,我假设它也保存到磁盘上了吗?

    一般来说,为什么我们要使用to_pickle保存数据框而不是将其保存为csv或txt或其他格式?

2 个答案:

答案 0 :(得分:10)

Pickle是一种存储Pandas数据帧的序列化方式。您基本上是将数据帧的确切表示写入光盘。这意味着列的类型相同,索引也相同。如果您只是将文件另存为csv,则只需将其存储为逗号分隔列表即可。根据您的数据集,当您重新加载时,某些信息将会丢失。

https://docs.python.org/3/library/pickle.html

答案 1 :(得分:6)

csv

  • ✅人类可读
  • ✅跨平台
  • ⛔慢一点
  • ⛔更多的磁盘空间
  • ⛔在某些情况下不会保留类型

  • ✅快速保存/加载
  • 更少的磁盘空间
  • ⛔人类不可读
  • 仅限python

也可以看看镶木地板格式(to_parquetread_parquet

  • ✅快速保存/加载
  • ✅磁盘空间少于 pickle
  • ✅受到许多平台的支持
  • ⛔人类不可读