如何将 Pandas DataFrame 转换为字节,反之亦然?

Yad*_*sai 1 python numpy dataframe pandas

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

Jun*_*ang 5

您可以使用cPicklepickle模块。

首先序列化数据帧:

>>> df
   A  B
0  1  3
1  2  4
>>> df_bytes = cPickle.dumps(df)
Run Code Online (Sandbox Code Playgroud)

df_bytes以某种方式发送内容,然后反序列化:

>>> df2 = cPickle.loads(df_bytes)
>>> df2
   A  B
0  1  3
1  2  4
Run Code Online (Sandbox Code Playgroud)

这两个模块确实引入了潜在的安全问题,因为它们允许在反序列化期间执行任意代码。更好的解决方案是将数据帧写入 json 字符串:

df_string = df.to_json()
Run Code Online (Sandbox Code Playgroud)

然后恢复它:

df_again = pandas.read_json(df_string)
Run Code Online (Sandbox Code Playgroud)

其他格式如csv也可用,对应的函数有DataFrame.to_csv()pandas.read_csv()。有关相关功能的完整列表,请参阅