Pandas DataFrame序列化

2 投票
1 回答
2721 浏览
提问于 2025-04-17 12:34

我在把一个pandas数据框的内容写入字符串缓冲区时遇到了问题。

其实,可以通过把字符串缓冲区传给read_csv函数来初始化一个数据框。

In [80]: buf = StringIO('a,b\n1,2\n')
In [81]: df = pandas.read_csv(buf)
In [82]: df
Out[82]: 
   a  b
0  1  2

但要做到反向操作就不那么简单了,因为DataFrame.to_csv这个函数只接受字符串文件路径。

这样设计有什么特别的原因吗?有没有什么好的方法可以在不先把内容存储到磁盘上的情况下,把pandas数据框序列化?

1 个回答

3

这基本上就是一个疏忽或者不一致的地方。我在这里创建了一个GitHub的问题:

https://github.com/wesm/pandas/issues/765

补充:今天已经实现了这个功能,现在你可以把一个StringIO传给to_csv,这个更新已经在git的主分支上,并将会包含在即将发布的0.7.0版本中。

撰写回答