pandas read_csv中的编解码器问题

时间:2017-07-24 04:03:52

标签: python pandas codec

我有两个文本文件:

https://www.dropbox.com/s/idk7k5qv2mp3d4p/bad.txt?dl=0 https://www.dropbox.com/s/x27fngacngaglyy/good.txt?dl=0

十六进制编辑器显示bad.txt开始:" FF FE 53 00 79"和Notepad ++报告该文件是UCS-2 LE BOM。我相信utf_16_le应该对此进行解码,但UnicodeDecodeError出现以下代码错误:' utf-16-le'编解码器不能解码位置2中的字节0x53:截断数据:

import pandas as pd

df1 = pd.read_csv("good.txt")
df2 = pd.read_csv("bad.txt", encoding="utf_16_le")

我已经尝试了我能找到的每个编解码器,但是不能让pandas读取bad.txt。我有很多这样的文件可以在自动化环境中阅读。两个问题:

  1. 是"错误"与bad.txt?生成文件的程序是否以某种方式错误处理文件?

  2. 如何将其读入熊猫df?如有必要,我可以用python代码转换文件吗?数据似乎很好,因为许多其他程序(文本编辑器,excel等)可以解释它,但我如何让大熊猫玩得很好?

1 个答案:

答案 0 :(得分:1)

更新Pandas 0.20按照预期使用utf-16编解码器处理此文件。感谢那些看过它的人。