【问题标题】:Best way to cache a pandas dataframe?缓存熊猫数据框的最佳方法?
【发布时间】:2019-11-25 09:27:02
【问题描述】:
昨天我了解到将 pandas 数据帧保存到 csv 以供以后使用是一个坏主意。我有一个包含 +- 130k 条推文的数据框,其中一行数据框是推文的 list。当我将数据保存到 CSV 然后重新加载数据框时,我的数据框的行现在是字符串类型。这会导致各种错误和大量调试。当然,假设 CSV 能够保存有关我的数据是哪种数据结构类型的信息是一个愚蠢的错误。
我现在的问题是:如何保存数据框以供以后使用,以保留有关我的列/行是哪些数据类型的信息?
【问题讨论】:
标签:
python
pandas
dataframe
【解决方案1】:
我希望您找到了您正在寻找的解决方案。
要回答这个问题,可以使用DataFrame.to_pickle()方法进行序列化(将python对象转换为字节流),当你反序列化一个pickle文件时,你会按原样取回数据,但是在使用pickle时要记住文件,当它们从不受信任的来源接收时可能会构成安全威胁。
这是doc 中关于如何使用泡菜的示例:
>>> 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