Непоследовательный вывод dtype read_csv панд о столбце с целочисленными строками в большом файле TSV
У меня есть разделенный табуляцией файл со столбцом, который должен интерпретироваться как строка, но многие записи являются целыми числами. Для небольших файлов read_csv правильно интерпретирует столбец как строку после просмотра некоторых нецелочисленных значений, но для больших файлов это не работает:
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)
выход:
['1' 'X' 1]
'1'
'1'
'1'
'1'
1
1
1
1
1
1
Интересно, что 262144 - это степень 2, поэтому я думаю, что логический вывод и преобразование происходят кусками, но пропускают некоторые куски.
Я вполне уверен, что это ошибка, но хотел бы обойти, которая, возможно, использует кавычки, хотя добавление quoting = csv.QUOTE_NONNUMERIC для чтения и записи не решает проблему. В идеале я мог бы обойти это, цитируя свои строковые данные и каким-то образом заставляя панд не делать никаких выводов в цитируемых данных.
Использование панд 0.12.0