Eu gostaria de importar o seguinte csv como strings, não como int64. O Pandas read_csv o converte automaticamente em int64, mas preciso dessa coluna como string.
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
Infelizmente, o uso de conversores dá o mesmo 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
Respostas:
Só quero reiterar que isso funcionará em pandas> = 0.9.1:
Estou criando um problema sobre a detecção de estouros de inteiros também.
EDIT: Veja a resolução aqui: https://github.com/pydata/pandas/issues/2247
fonte
dtype = str
.Essa provavelmente não é a maneira mais elegante de fazer isso, mas dá conta do recado.
Basta substituir
'/Users/spencerlyon2/Desktop/test.csv'
pelo caminho para o seu arquivofonte
Desde o pandas 1.0, ele se tornou muito mais simples. Isso lerá a coluna 'ID' como dtype 'string':
Como podemos ver neste guia de introdução , 'string' dtype foi introduzido (antes de as strings serem tratadas como dtype 'objeto').
fonte