2017-02-16 218 views

回答

2

您可以使用cPicklepickle模塊。

首先連載數據框:

>>> df 
    A B 
0 1 3 
1 2 4 
>>> df_bytes = cPickle.dumps(df) 

發送的df_bytes內容弄好了,然後反序列化:

>>> df2 = cPickle.loads(df_bytes) 
>>> df2 
    A B 
0 1 3 
1 2 4 

這兩個模塊並引入潛在的安全問題,因爲它們允許執行任意代碼在反序列化過程中。一個更好的解決辦法是將數據幀寫入JSON字符串:

df_string = df.to_json() 

,又重新恢復它:

df_again = pandas.read_json(df_string) 

其他格式,如csv也都具備,相應的功能DataFrame.to_csv()pandas.read_csv()。有關相關功能的完整列表,請參見thisthis

+0

找不到package.Plus我讀它不安全。還有其他建議嗎? –

+0

這兩個模塊位於標準庫中。所以不需要額外的軟件包。只需'import pickle'或'import cPickle'即可。我編輯了這篇文章,以添加轉換爲和來自字符串格式的方法,這應該更安全。 –

+0

謝謝。我嘗試了泡菜。它正在工作。現在安全問題不是什麼大問題,所以現在就要使用泡菜了。稍後將嘗試json。 –

相關問題