Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫的编码_Python_Csv_Encoding_Pandas_Decoding - Fatal编程技术网

Python 熊猫的编码

Python 熊猫的编码,python,csv,encoding,pandas,decoding,Python,Csv,Encoding,Pandas,Decoding,我有一个csv文件,它是用GB2312编码的。我已经通过选项encoding='GB2312'成功地将其读入pandas.dataframe。然而,当我在STATA中打开文件(并进行了相当多的手动编辑)并将其保存回csv时,我未能在pandas中打开它。我收到以下错误消息: 'gb2312' codec can't decode byte 0xcf in position 2044: incomplete multibyte sequence 因此,文件中似乎有一些字符无法解码(事实上,我可以

我有一个csv文件,它是用
GB2312
编码的。我已经通过选项
encoding='GB2312'
成功地将其读入pandas.dataframe。然而,当我在STATA中打开文件(并进行了相当多的手动编辑)并将其保存回csv时,我未能在pandas中打开它。我收到以下错误消息:

'gb2312' codec can't decode byte 0xcf in position 2044: incomplete multibyte sequence
因此,文件中似乎有一些字符无法解码(事实上,我可以毫无问题地读取前几行)。Python有一个用于解码字符串的
'ignore'
选项,但我不知道如何将该选项应用于
read\u csv


感谢您的帮助。

听起来问题可能出在斯塔塔身上。制作Stata保存文件的副本,并尝试缩小其大小,直到找到导致错误的零件。然后将其与原始文件进行比较。也许你可以知道斯塔塔在读文件时是否把它弄乱了。@BrenBarn,我知道问题出在哪里了。基本上,STATA对str244以下的字符串有一个限制。因此,当我从STATA保存csv时,一些字符被切成两半,python无法识别其编码。我还没有解决办法。我在STATA中做了一些非常繁琐的编辑,我当然不想在python中复制。@ZhenSun,也许这已经太晚了,但是STATA会打印出您所做的任何手动编辑的脚本版本(类似于
replace var2=28 in 4
)。如果您将手动编辑的日志保存在某个地方,那么自动将
replace var2=28 in 4
等转换为pandas代码应该不会有什么困难-只需解析此字符串作为自定义pandas替换函数的参数。@cd98,谢谢您的评论。Stata编辑都是脚本版本。python中的更改太多,无法复制。我不知道Stata和python中的命令是如何自动转换的…@ZhenSun:只要在更改中有一些模式,我想Stackoverflow中的某个人可能会提出一个自动转换(我很乐意自己尝试一下)。