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
これら二つのモジュールは、潜在的なセキュリティ上の問題を導入しませんデシリアライズ中。
df_string = df.to_json()
し、その後、それを回復する:よりよい解決策は、JSON文字列にデータフレームを書くことになるようcsv
など
df_again = pandas.read_json(df_string)
他のフォーマットに対応する機能がDataFrame.to_csv()
とpandas.read_csv()
あり、また、ご利用いただけます。関連する機能の完全な一覧については、thisおよびthisを参照してください。
パッケージを見つけることができませんでした。私はそれがsecure.Any他の提案ではないと読んで? –
これら2つのモジュールは標準ライブラリにあります。したがって、追加のパッケージは必要ありません。単に 'import pickle'または' import cPickle'が行います。私は、より安全でなければならない文字列フォーマットとの変換方法を追加するために投稿を編集しました。 –
ありがとうございます。私はピックルを試しました。それは働いています。セキュリティはそれほど大きな問題ではありません。今のところ、pickleを使うつもりです。後でジョーンズを試みます。 –