列名称中的未知字符

时间:2016-02-11 16:52:07

标签: python pandas

我有这样的df:

Allotments   NDWI   TWI
1             2     4
2             3     6

我试图重命名列,但是当我打印时:

df.columns.values

返回:

['\xef\xbb\xbfAllotments' 'NDWI' 'TWI']

当我看到df时,它只是说Allotments。如何删除这些额外的字符?

我试过

df.rename(columns=lambda x: x.strip())

但没有运气。

2 个答案:

答案 0 :(得分:1)

您可以将encoding='utf-8'作为kwarg传递给read_csv,以便正确解码BOM。

答案 1 :(得分:0)

这是UTF-8 Byte Order Mark。您可以对内容进行重新编码以解决此问题。

x = ['\xef\xbb\xbfAllotments', 'NDWI', 'TWI']
x = [s.decode("utf-8-sig").encode("utf-8") for s in x]
print(x) # => ['Allotments', 'NDWI', 'TWI']