smc*_*mci 5 import backwards-compatibility stringio python-2to3 pandas
StringIO 是我们在从文本中读取Pandas数据帧时使用的类似文件的字符串缓冲区对象,例如“如何从字符串创建 Pandas数据帧?”
我们应该将这两个导入中的哪一个用于 StringIO(在熊猫中)?这是一个长期存在的问题,四年来从未得到解决。
StringIO.StringIO
(Python 2)/ io.StringIO
(Python 3)
pandas.compat.StringIO
builtins, StringIO/cStringIO, BytesIO, cPickle, httplib
、范围、过滤器、映射和 zip 的迭代器版本,以及 Python 3 兼容性的其他必要元素 - 请参阅0.13.0 最新消息用于从标准(来自 EmilH)导入的版本 2/3 分叉代码:
import sys
if sys.version_info[0] < 3:
from StringIO import StringIO
else:
from io import StringIO
# Note: but this is very much a poor-man's version of pandas.compat, which contains much much more
Run Code Online (Sandbox Code Playgroud)
笔记:
pandas.compat
自 pandas 0.13.0(2014 年 1 月)以来作为 pandas 中的一个子包存在我知道这是一个老问题,但我在这里跟踪了面包屑,所以也许仍然值得回答。它并不完全确定,但当前的 Pandas 文档建议使用内置方法StringIO
而不是它自己的内部方法。
仅供参考,从 pandas 0.25 开始,StringIO
已从pandas.compat
( PR #25954 ) 中删除,因此您现在将看到:
from pandas.compat import StringIO
Run Code Online (Sandbox Code Playgroud)
ImportError:无法从“pandas.compat”导入名称“StringIO”
这意味着唯一的答案是从io
模块导入。
归档时间: |
|
查看次数: |
2222 次 |
最近记录: |