缓存pandas数据帧的最佳方法是什么?

4

我昨天吃了个亏,想把pandas的dataframe保存成csv文件以备后用,但是这是一个坏主意。我的dataframe里有大约130k条推文,其中一行是推文的列表。当我把数据保存到CSV文件中,然后再加载回来时,我的dataframe的行现在变成了字符串类型。这导致出现了各种错误和许多调试。当然,假定CSV能够保存关于数据结构类型的信息是一个愚蠢的错误。

现在我的问题是:如何以一种保留列/行数据类型信息的方式,将dataframe保存下来备用?


2
尝试使用DataFrame.to_pickle - Chris Adams
这是否保留了所有底层数据结构信息? - Psychotechnopath
1个回答

3

希望您已经找到了您正在寻找的解决方案。
要回答这个问题,可以使用 DataFrame.to_pickle() 方法将Python对象序列化(转换为字节流),当您反序列化pickle文件时,您可以获取与原始数据相同的数据,但请注意,使用pickle文件时,它们可能会构成安全威胁,特别是从不受信任的来源接收时。

以下是来自文档的示例,展示如何使用pickle:

>>> original_df = pd.DataFrame({"foo": range(5), "bar": range(5, 10)})
>>> original_df
   foo  bar
0    0    5
1    1    6
2    2    7
3    3    8
4    4    9

>>> pd.to_pickle(original_df, "./dummy.pkl")
>>> unpickled_df = pd.read_pickle("./dummy.pkl")
>>> unpickled_df
   foo  bar
0    0    5
1    1    6
2    2    7
3    3    8
4    4    9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接