, поэтому их предупреждение является слишком серьезным

gIO - это объектоподобный строковый буферный объект, который мы используем при чтении кадра данных pandas из текста, например,"Как создать Pandas DataFrame из строки?"

Какой из этих двух импортов мы должны использовать для StringIO (внутри панд)? Это давний вопрос, который никогда не решался в течение четырех лет.

StringIO.StringIO (Python 2) /io.StringIO (Python 3)Преимущества: более стабильный для будущего кода, но заставляет нас работать с версией, например, см. код внизу от EmilH.pandas.compat.StringIOpandas.compat - это пакет совместимости 2/3 («без необходимости 2to3»), выпущенный еще в 0.13.0 (январь 2014 г.)Пакет pandas.compat по-прежнему помечен как «приватный» с 0.22 и не планирует делать «публичным» говорит«Предупреждение Модули верхнего уровня pandas.core, pandas.compat и pandas.util считаются ЧАСТНЫМИ. Стабильность функциональности в этих модулях не гарантируется». хотя они по сути не сломались с 0,13источник pandas.compat определяет импортbuiltins, StringIO/cStringIO, BytesIO, cPickle, httplibверсии итератора: range, filter, map и zip, а также другие необходимые элементы для совместимости с Python 3 - см.0.13.0 что нового

Код разветвления версии 2/3 для импорта из стандарта (из EmilH):

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

Примечание:

pandas.compat существует с pandas 0.13.0 (январь 2014 г.) как подпакет внутри pandasэто такжеПохоже, что он выпущен в виде отдельного пакета: 0.1.0 (10 июня 2017 г.) и 0.1.1 (10 июня 2017 г.)

Ответы на вопрос(0)

Ваш ответ на вопрос