将 pandas 数据帧保存到 pickle 和 csv 之间有什么区别?

What is the difference between save a pandas dataframe to pickle and to csv?

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

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

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

教程说to_pickle是将dataframe保存到磁盘。我对此感到困惑。因为当我使用 to_csv 时,我确实看到文件夹中出现了一个 csv 文件,我认为它也保存到磁盘上了吧?

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

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

您可以在 python、here.

中阅读有关 pickle 库的更多信息

csv

  • ✅人类可读
  • ✅跨平台
  • ⛔慢
  • ⛔更多磁盘space
  • ⛔在某些情况下不保留类型

泡菜

  • ✅快 saving/loading
  • ✅无盘space
  • ⛔非人类可读
  • ⛔python 仅

另请参阅 parquet 格式 (to_parquet, read_parquet)

  • ✅快 saving/loading
  • ✅ 比 pickle
  • 更少磁盘 space
  • ✅多平台支持
  • ⛔非人类可读