pandas to_csv read_csv编码错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas to_csv read_csv编码错误相关的知识,希望对你有一定的参考价值。

我在pandas(v21.1)中构建了一个数据帧(Python 3,Windows(220k行)并写出到csv。在Excel中打开,文件看起来很好(220k行)。使用pandas读入,现在文件有额外的40k行并且通常具有各种编码错误。

尝试了多个to_csv / read_csv encoding=组合,包括:utf-8utf-8-sigcp1252asciiutf-16写出:

encoding='cp1252' or 'ascii' - UnicodeEncodeError: 'charmap' codec can't encode character 'u1e28' in position 261: character maps to <undefined>
encoding='utf-8',`utf-8-sig`,`utf-16`,`cp1252`,  - no Python error in the console, but still doesn't render correctly when I import it again.

在阅读时,我经常收到警告:DtypeWarning: Columns (0,1,3,4,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,28,29,30,31,32,37,38,39,40,41,42,43,46,47,48,49,50,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,91,92,93,94,95,96,97,98,99,100,101,102) have mixed types. Specify dtype option on import or set low_memory=False. interactivity=interactivity, compiler=compiler, result=result)

我已经尝试为列指定dtypes,通过在dtypes中保存to_csvdict并使用相同的dict作为read_csv的输入 - 但是由于发现了意外的数据类型,它也给出了错误,例如ValueError: Integer column has NA values in column 33

当我作为Excel文件执行时,它似乎工作正常。当我尝试使用Python 2.7安装时,会出现同样的问题。

我怀疑问题可能是我导入的第三方csv文件,当我使用'cp1252'时似乎只导入了。我尝试使用utf-8在Excel中重新保存此输入文件 - 但这也没有用。

谢谢你的建议!

答案

你得到的DtypeWarning是因为pandas无法推断出所有这些列的数据类型。将它们设置在str param中的dtype将使警告静音。

参考:https://stackoverflow.com/a/27232309/5182482

使用pandas读入,现在该文件有额外的40k行,并且通常有各种编码错误。

我不能完全告诉你这个问题。

以上是关于pandas to_csv read_csv编码错误的主要内容,如果未能解决你的问题,请参考以下文章

text 使pandas的to_csv和read_csv一致

pandas使用read_csv读取数据使用skiprows参数跳过指定的数据行但保留表头pandas使用to_csv函数将dataframe保存为gzip压缩文件

to_csv()和read_csv()用于包含序列化对象的数据帧

pandas的read_csv踩到的坑

Pandas写出数据

Pandas写出数据