Python 如何将数据帧转换为字节,反之亦然?

Python 如何将数据帧转换为字节,反之亦然?,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我正在尝试使用套接字编程发送数据帧。为此,我需要知道如何在客户端将数据帧编码为字节,然后在服务器上将其解码为数据帧。您可以使用cPickle或pickle模块 首先序列化数据帧: >>> df A B 0 1 3 1 2 4 >>> df_bytes = cPickle.dumps(df) 以某种方式发送df_字节的内容,然后反序列化: >>> df2 = cPickle.loads(df_bytes) >>&g

我正在尝试使用套接字编程发送数据帧。为此,我需要知道如何在客户端将数据帧编码为字节,然后在服务器上将其解码为数据帧。

您可以使用cPickle或pickle模块

首先序列化数据帧:

>>> df
   A  B
0  1  3
1  2  4
>>> df_bytes = cPickle.dumps(df)
以某种方式发送df_字节的内容,然后反序列化:

>>> 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。有关相关函数的完整列表,请参阅和。

您可以使用cPickle或pickle模块

首先序列化数据帧:

>>> df
   A  B
0  1  3
1  2  4
>>> df_bytes = cPickle.dumps(df)
以某种方式发送df_字节的内容,然后反序列化:

>>> 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。有关相关函数的完整列表,请参阅和。

找不到该软件包。另外,我读到它不安全。还有其他建议吗?这两个模块位于标准库中。因此,不需要额外的软件包。只需导入pickle或导入cPickle即可。我编辑了这篇文章,添加了转换字符串格式的方法,这应该更安全。谢谢你。我试过泡菜,它起作用了。到目前为止,安全性还不是一个大问题。所以现在就使用pickle。稍后将尝试json。找不到包。另外,我读到它不安全。还有其他建议吗?这两个模块在标准库中。因此,不需要额外的软件包。只需导入pickle或导入cPickle即可。我编辑了这篇文章,添加了转换字符串格式的方法,这应该更安全。谢谢你。我试过泡菜,它起作用了。到目前为止,安全性还不是一个大问题。所以现在就使用pickle。稍后将尝试json。