2015-06-25 8 views
0

Я пишу файл фиксированной ширины в CSV. Поскольку файл слишком большой для чтения сразу, я читаю файл в кусках 100000 и добавляю к CSV. Это работает нормально, однако он добавляет индекс в строки, несмотря на то, что установлен index = False.Pandas to_csv index = False не работает

Как заполнить файл CSV без индекса?

infile = filename 
outfile = outfilename 
cols = [(0,10), (12,19), (22,29), (34,41), (44,52), (54,64), (72,80), (82,106), (116,144), (145,152), (161,169), (171,181)] 

for chunk in pd.read_fwf(path, colspecs = col_spec, index=False, chunksize=100000): 
chunk.to_csv(outfile,mode='a') 

Спасибо!

ответ

1

to_csv method имеет параметр header, указывающий, следует ли выводить заголовок. В этом случае вы, вероятно, делаете не хотите это для записи, которые не являются первой записью.

Таким образом, вы могли бы сделать что-то вроде этого:

for i, chunk in enumerate(pd.read_fwf(...)): 
    first = i == 0 
    chunk.to_csv(outfile, header=first, mode='a') 
+0

Спасибо, но я нашел ответ на мой вопрос, скрытый в действии вставать, оставив работу и идти домой. Я бы поставил index = False в chunk.to_csv (outfile, index = False, mode = 'a'), а не в read.fwf() ... – user3867061

+0

@ user3867061 Рад, что вы это решили. –

Смежные вопросы