python - 如何将 pandas DataFrame 转换为字节,反之亦然?

标签 python pandas numpy dataframe

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

最佳答案

您可以使用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相关功能的完整列表。

关于python - 如何将 pandas DataFrame 转换为字节,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42269166/

相关文章:

python - 匹配 Pandas Dataframe 中删除的行

python - 从列名称列表中切片并通过将另一个列表指定为这些列中的名称来重命名它们

python - 初学者问题: Python scatter plot with normal distribution not plotting

python - Pandas 在特定行将数据框拆分为两个数据框

python - enumerate 是否创建其参数的副本?

python - Kubernetes 的 Airflow GCP 连接问题 - Fernet key 必须是 32 个 url 安全的 base64 编码字节

python - 在同一个 IPython Notebook 单元格中制作多个图表

python - 根据同一行其他列中的值将函数应用于数据框列元素?

python - 以写入和追加模式打开文件

python - 如何限制到套接字的连接数并在客户端触发超时(Python)