Я не могу прочитать данные в Pandas: Ввод:

import pandas as pd

data = 'a,b,c\n1,2,3\n4,5,6'

pd.read_csv(StringIO(data),skipinitialspace=True)

Выход:

NameError:name 'StringIO' is not defined

Сообщите мне, почему произошла ошибка, а также сообщите, что импортировать.

11
Abhishek 30 Май 2016 в 20:20

4 ответа

Нашел решение здесь:

Ошибка произошла из-за того, что я не импортировал StringIO. В отличие от Python 2, в Python 3 вам необходимо импортировать его.

from io import StringIO

После импорта ошибок не произошло. Вывод на вышеуказанный вопрос был:

   a b c
0  1 2 3
1  4 5 6

Его также можно импортировать из pandas.compat, который работает как для Python 2, так и для Python 3.

from pandas.compat import StringIO
24
vvvvv 23 Май 2022 в 11:49
3
В Python 2 вам также необходимо импортировать его, только из другого модуля (также называемого StringIO).
 – 
user2357112
22 Янв 2018 в 05:39

Это потому, что он был удален в Python 3 для лучшего модуля.

Из Что нового в Python 3.0:

Модули StringIO и cStringIO исчезли. Вместо этого импортируйте модуль io и используйте io.StringIO или io.BytesIO для текста и данных соответственно.

try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO
2
Gabriel Fair 16 Май 2018 в 06:15

StringIO необходимо импортировать как import StringIO, прежде чем его можно будет использовать

РЕДАКТИРОВАТЬ: ссылка для получения дополнительной информации: https://docs.python.org/2/library/stringio .html

-1
Fred Cascarini 1 Фев 2017 в 15:41

Попробуйте добавить следующие пакеты. Эти пакеты должны добавить эту строку в начало вашего скрипта.

import io
from io import StringIO
import string
import pandas as pd
from pandas.compat import StringIO
from collections import Counter

try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO

После добавления вышеуказанных пакетов я не получаю ошибку ниже

ModuleNotFoundError: No module named 'StringIO'
3
thrinadhn 28 Авг 2018 в 10:03