0
我正在嘗試使用套接字編程發送數據幀。爲此,我需要知道如何在客戶端將數據幀編碼爲字節,然後將其解碼爲服務器上的數據幀。如何將pandas DataFrame轉換爲字節,反之亦然?
我正在嘗試使用套接字編程發送數據幀。爲此,我需要知道如何在客戶端將數據幀編碼爲字節,然後將其解碼爲服務器上的數據幀。如何將pandas DataFrame轉換爲字節,反之亦然?
您可以使用cPickle
或pickle
模塊。
首先連載數據框:
>>> 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()
。有關相關功能的完整列表,請參見this和this。
找不到package.Plus我讀它不安全。還有其他建議嗎? –
這兩個模塊位於標準庫中。所以不需要額外的軟件包。只需'import pickle'或'import cPickle'即可。我編輯了這篇文章,以添加轉換爲和來自字符串格式的方法,這應該更安全。 –
謝謝。我嘗試了泡菜。它正在工作。現在安全問題不是什麼大問題,所以現在就要使用泡菜了。稍後將嘗試json。 –