Me gustaría importar el siguiente csv como cadenas, no como int64. Pandas read_csv lo convierte automáticamente a int64, pero necesito esta columna como cadena.
ID
00013007854817840016671868
00013007854817840016749251
00013007854817840016754630
00013007854817840016781876
00013007854817840017028824
00013007854817840017963235
00013007854817840018860166
df = read_csv('sample.csv')
df.ID
>>
0 -9223372036854775808
1 -9223372036854775808
2 -9223372036854775808
3 -9223372036854775808
4 -9223372036854775808
5 -9223372036854775808
6 -9223372036854775808
Name: ID
Desafortunadamente, el uso de convertidores da el mismo resultado.
df = read_csv('sample.csv', converters={'ID': str})
df.ID
>>
0 -9223372036854775808
1 -9223372036854775808
2 -9223372036854775808
3 -9223372036854775808
4 -9223372036854775808
5 -9223372036854775808
6 -9223372036854775808
Name: ID
Respuestas:
Solo quiero reiterar que esto funcionará en pandas> = 0.9.1:
Estoy creando un problema sobre la detección de desbordamientos de enteros también.
EDITAR: Vea la resolución aquí: https://github.com/pydata/pandas/issues/2247
fuente
dtype = str
.Probablemente esta no sea la forma más elegante de hacerlo, pero hace el trabajo.
Simplemente reemplácelo
'/Users/spencerlyon2/Desktop/test.csv'
con la ruta a su archivofuente
Desde pandas 1.0 se volvió mucho más sencillo. Esto leerá la columna 'ID' como dtype 'cadena':
Como podemos ver en esta guía de introducción, se ha introducido el dtype 'string' (antes de que las cadenas se trataran como dtype 'object').
fuente