Python 缓存数据帧的最佳方法?
昨天我艰难地了解到,将熊猫数据帧保存到csv以供以后使用是一个坏主意。我有一个+130k条tweets的数据帧,其中一行是tweets列表。当我将数据保存到CSV,然后重新加载数据帧时,我的数据帧的行现在是字符串类型。这会导致各种错误和大量调试。当然,假设CSV能够保存关于我的数据是哪种数据结构类型的信息是一个愚蠢的错误Python 缓存数据帧的最佳方法?,python,pandas,dataframe,Python,Pandas,Dataframe,昨天我艰难地了解到,将熊猫数据帧保存到csv以供以后使用是一个坏主意。我有一个+130k条tweets的数据帧,其中一行是tweets列表。当我将数据保存到CSV,然后重新加载数据帧时,我的数据帧的行现在是字符串类型。这会导致各种错误和大量调试。当然,假设CSV能够保存关于我的数据是哪种数据结构类型的信息是一个愚蠢的错误 我现在的问题是:如何保存数据帧以备日后使用,从而保留有关我的列/行的数据类型的信息?我希望您能找到所需的解决方案。 要回答这个问题,您可以使用DataFrame.To_pick
我现在的问题是:如何保存数据帧以备日后使用,从而保留有关我的列/行的数据类型的信息?我希望您能找到所需的解决方案。
要回答这个问题,您可以使用
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
尝试此操作是否保留所有基础数据结构信息?