我昨天吃了个亏,想把pandas的dataframe保存成csv文件以备后用,但是这是一个坏主意。我的dataframe里有大约130k条推文,其中一行是推文的列表。当我把数据保存到CSV文件中,然后再加载回来时,我的dataframe的行现在变成了字符串类型。这导致出现了各种错误和许多调试。当然,假定CSV能够保存关于数据结构类型的信息是一个愚蠢的错误。
现在我的问题是:如何以一种保留列/行数据类型信息的方式,将dataframe保存下来备用?
希望您已经找到了您正在寻找的解决方案。
要回答这个问题,可以使用 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
DataFrame.to_pickle
。 - Chris Adams