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