我正在尝试使用套接字编程发送数据帧。为此,我需要知道如何在客户端将数据帧编码为字节,然后在服务器将其解码为数据帧。
最佳答案
您可以使用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相关功能的完整列表。
关于python - 如何将 pandas DataFrame 转换为字节,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42269166/