¿Cómo leer archivos UTF-8 con Pandas?

Tengo un archivo UTF-8 con datos de Twitter y trato de leerlo en un dataframe de Python, pero solo puedo obtener un tipo de ‘objeto’ en lugar de cadenas Unicode:

# file 1459966468_324.csv #1459966468_324.csv: UTF-8 Unicode English text df = pd.read_csv('1459966468_324.csv', dtype={'text': unicode}) df.dtypes text object Airline object name object retweet_count float64 sentiment object tweet_location object dtype: object 

¿Cuál es la forma correcta de leer y coaccionar los datos UTF-8 en Unicode con Pandas?

Esto no resuelve el problema:

 df = pd.read_csv('1459966468_324.csv', encoding = 'utf8') df.apply(lambda x: pd.lib.infer_dtype(x.values)) 

El archivo de texto está aquí: https://raw.githubusercontent.com/l1x/nlp/master/1459966468_324.csv

Como mencionó el otro póster, puedes probar:

 df = pd.read_csv('1459966468_324.csv', encoding = 'utf8') 

Sin embargo, esto todavía podría dejarte mirando ‘objeto’ cuando imprimas los dtypes. Para confirmar que son utf8, intente esta línea después de leer el CSV:

 df.apply(lambda x: pd.lib.infer_dtype(x.values)) 

Ejemplo de salida:

 args unicode date datetime64 host unicode kwargs unicode operation unicode 

Use la palabra clave de encoding con el parámetro apropiado:

 df = pd.read_csv('1459966468_324.csv', encoding='utf8') 

Pandas almacena cadenas en el object s. En Python 3, todas las cadenas están en Unicode por defecto. Por lo tanto, si usa Python 3, sus datos ya están en Unicode (no se deje engañar por el tipo de object ).

Si tiene python 2, use df = pd.read_csv('your_file', encoding = 'utf8') . Luego intente, por ejemplo, pd.lib.infer_dtype(df.iloc[0,0]) (Supongo que la primera columna es de cadenas).