Python 将数据帧保存到pickle和csv之间有什么区别?
我正在学习蟒蛇。 我看到了一个教程,其中展示了保存数据帧的两种方法Python 将数据帧保存到pickle和csv之间有什么区别?,python,pandas,csv,pickle,Python,Pandas,Csv,Pickle,我正在学习蟒蛇。 我看到了一个教程,其中展示了保存数据帧的两种方法 pd.to_csv('sub.csv')和打开pd.read_csv('sub.csv') pd.to_pickle('sub.pkl')和打开pd.read_pickle('sub.pkl') 教程说,to_pickle是将数据帧保存到磁盘。我对此感到困惑。因为当我使用创建csv时,我确实看到文件夹中出现了一个csv文件,我想它也是保存到磁盘的,对吗 一般来说,为什么我们要使用来保存数据帧,而不是将其保存为csv、txt或其他
pd.to_csv('sub.csv')
和打开pd.read_csv('sub.csv')
pd.to_pickle('sub.pkl')
和打开pd.read_pickle('sub.pkl')
to_pickle
是将数据帧保存到磁盘。我对此感到困惑。因为当我使用创建csv
时,我确实看到文件夹中出现了一个csv文件,我想它也是保存到磁盘的,对吗
一般来说,为什么我们要使用
来保存数据帧,而不是将其保存为csv、txt或其他格式?pickle是存储数据帧的一种序列化方式。基本上,您正在将数据帧的精确表示形式写入磁盘。这意味着列的类型和索引是相同的。如果您只是将文件保存为csv
,那么您只是将其存储为逗号分隔的列表。根据您的数据集,在加载备份时,某些信息将丢失
您可以阅读有关python中pickle库的更多信息。csv
- ✅可读
- ✅跨平台
- ⛔慢的
- ⛔更多磁盘空间
- ⛔在某些情况下不保留类型
泡菜
- ✅快速保存/加载
- ✅更少的磁盘空间
- ⛔非人类可读的
- ⛔仅限python
还可以看看拼花地板的格式(到_parquet
,读取_parquet
)
- ✅快速保存/加载
- ✅比pickle更少的磁盘空间
- ✅由多个平台支持
- ⛔非人类可读的
那么您的意思是,在保存熊猫数据帧时,最好使用pickle,即它保留原始数据帧?泡菜有什么好处吗?例如,在加载速度方面?@KevinKim,您可能想检查一下以CSV保存的主要优点是有一个标准格式,可以用多种软件打开/languages@MaxU谢谢因此,如果我的原始数据集是一个大的csv文件,我想最好先将其加载到pandas中,然后使用to_pickle存储它。因此,下一次当我需要再次加载此数据帧时,我可以使用read_Picker来更快地加载它,对吗?@Alessandro是的,这是有道理的,我同意你的看法Matthew Rocklin做了一个有趣的速度分析,还根据it的一个例子来看看feather格式(to_feather
,read_feather
)“显示出很高的I/O速度,不占用磁盘上太多的内存,并且在加载回RAM时不需要任何解包。”感谢这个答案非常简洁,切中要害。对于详细的细分,我发现这是一个深入的细分,包括到_feather
vs到_parquet