What is the difference between save a pandas dataframe to pickle and to csv?
我正在学习Python熊猫。
我看到一个教程,它显示了两种保存pandas数据帧的方法。
pd.to_csv('sub.csv')并打开pd.read_csv('sub.csv')
pd.to_pickle('sub.pkl')并打开pd.read_pickle('sub.pkl')
该教程说to_pickle是将数据帧保存到磁盘。 我很困惑。 因为当我使用to_csv时,我确实看到文件夹中出现了一个csv文件,我假设它也保存到磁盘中了吗?
一般来说,为什么我们要使用to_pickle保存数据帧而不是将其保存为csv或txt或其他格式?
-
Matthew Rocklin在这里做了一个有趣的速度分析
Pickle是一种存储Pandas数据帧的序列化方式。 您基本上是将数据帧的确切表示写入光盘。 这意味着列的类型相同,索引也相同。 如果您只是将文件另存为csv,则只需将其存储为逗号分隔列表即可。 根据您的数据集,当您重新加载时,某些信息将会丢失。
https://docs.python.org/3/library/pickle.html
-
你的意思是,在保存pandas数据帧时,更优选to_pickle,即保留原始数据帧? to_pickle有什么好处吗? 例如,在加载速度方面?
-
@KevinKim,您可能想查看这个比较
-
保存CSV的主要优点是具有可以使用各种软件/语言打开的标准化格式
-
@MaxU谢谢! 因此,如果我的原始数据集是一个大的csv文件,我想最好先将它加载到pandas然后使用to_pickle存储它。 因此,下次当我需要再次加载这个数据帧时,我可以使用read_pickle加载它必须更快,这是正确的吗?
-
@Alessandro是的,这是有道理的,我同意你的看法