Inferência inconsistente de pandas read_csv dtype na coluna string de maior número inteiro em um arquivo TSV enorme

Eu tenho um arquivo separado por tabulação com uma coluna que deve ser interpretada como uma string, mas muitas das entradas são números inteiros. Com pequenos arquivos read_csv interpreta corretamente a coluna como uma string depois de ver alguns valores não inteiros, mas com arquivos maiores, isso não funciona:

import pandas as pd
df = pd.DataFrame({'a':['1']*100000 + ['X']*100000 + ['1']*100000, 'b':['b']*300000})
df.to_csv('test', sep='\t', index=False, na_rep='NA')
df2 = pd.read_csv('test', sep='\t')
print df2['a'].unique()
for a in df2['a'][262140:262150]:
    print repr(a)

saída:

['1' 'X' 1]
'1'
'1'
'1'
'1'
1
1
1
1
1
1

Curiosamente, 262144 é uma potência de 2, então acho que a inferência e a conversão estão acontecendo em partes, mas está pulando alguns pedaços.

Eu tenho quase certeza de que isso é um bug, mas gostaria de um trabalho que talvez use aspas, embora adicionar citação = csv.QUOTE_NONNUMERIC para leitura e escrita não conserte o problema. Idealmente, eu poderia contornar isso citando meus dados de string e de alguma forma forçar os pandas a não fazer nenhuma inferência nos dados citados.

Usando pandas 0.12.0

questionAnswers(2)

yourAnswerToTheQuestion