Pandas to_csv在写入增量块时无法使用index=False的解决方法

3
我正在将一个固定宽度的文件写入CSV。由于该文件太大,无法一次性读取,因此我正在以100000个块的形式读取文件并追加到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个回答

1

to_csv方法有一个header参数,表示是否输出标题。在这种情况下,对于不是第一次写入的写入,您可能不想要这个。

因此,您可以像这样做:

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

谢谢,但我已经找到了答案,它隐藏在起身离开工作并回家的行动中。我应该将index=False放在chunk.to_csv(outfile, index=False, mode='a')中而不是read.fwf()中... - user3867061
1
@user3867061为什么不将它添加为答案呢? - eis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接