Python pandas NameError: StringIO no está definido

No puedo leer datos en Pandas: Entrada:

import pandas as pd data = 'a,b,c\n1,2,3\n4,5,6' pd.read_csv(StringIO(data),skipinitialspace=True) 

Salida:

 NameError:name 'StringIO' is not defined 

Por favor, hágame saber por qué ocurrió el error y también hágame saber qué importar.

Encontré la solución aquí:

El error ocurrió porque no StringIO . A diferencia de Python 2, en Python 3 se requiere que lo importe.

from io import StringIO

Después de la importación no se produjo ningún error. La salida a la pregunta anterior fue:

  abc 0 1 2 3 1 4 5 6 

También se puede importar desde pandas.compat que funciona tanto para Python 2 como para 3.

 from pandas.compat import StringIO 

Es porque se eliminó en Python 3 para un mejor módulo.

De lo nuevo en Python 3.0 :

Los módulos StringIO y cStringIO se han ido. En su lugar, importe el módulo io y use io.StringIO o io.BytesIO para texto y datos respectivamente.

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

Intente agregar los siguientes paquetes. Estos paquetes deben agregar esta línea al comienzo de su script.

 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 

Después de agregar los paquetes anteriores no recibo el error de abajo

 ModuleNotFoundError: No module named 'StringIO' 

StringIO se debe importar como import StringIO antes de poder utilizarlo

EDITAR: enlace para más información: https://docs.python.org/2/library/stringio.html