pandas to_csv用|分隔存CSV,read_csv按|读取报错求助
解决DataFrame保存CSV时分隔符不生效的问题
你在保存testeEstadosSeparados DataFrame时,明明指定了sep="|"作为分隔符,但实际生成的CSV文件还是用逗号分隔,导致读取时只有设sep=","才能正常打开,用sep="|"就触发ParserError错误(提示第80行预期1个字段,实际看到2个)。
错误原因
你的保存代码括号位置写错了,把index=False、sep="|"这些to_csv的参数,误放到了format()的括号里,导致这些参数根本没传给to_csv方法,to_csv只能用默认的逗号分隔符来保存文件。
原错误代码的问题点:
testeEstadosSeparados.to_csv("/home/ec2-user/SageMaker/Bases/infraEscola-UF-semDuplicacoes/planosDeAcao_Escolas_{}.csv".format(pegaNomeDoCampo_Contagem(paths[0]), index = False, sep = "|", encoding="utf-8"))
这里format()的括号把index等参数都包含进去了,相当于给format()传了多余参数,而to_csv完全没收到sep等设置。
修正后的代码
把format()的括号只包裹文件名里的占位符部分,to_csv的参数单独放在外面:
testeEstadosSeparados.to_csv( "/home/ec2-user/SageMaker/Bases/infraEscola-UF-semDuplicacoes/planosDeAcao_Escolas_{}.csv".format(pegaNomeDoCampo_Contagem(paths[0])), index=False, sep="|", encoding="utf-8" )
已生成文件的处理
如果已经生成了逗号分隔的CSV文件,不想重新保存的话,读取时直接用sep=","即可;如果必须使用|分隔的文件,用上面修正后的代码重新保存一次即可。
内容的提问来源于stack exchange,提问作者Vinicius Oliveira
相关产品推荐
相关产品推荐

