Python 列名中的未知字符
我有这样一个df:Python 列名中的未知字符,python,pandas,Python,Pandas,我有这样一个df: Allotments NDWI TWI 1 2 4 2 3 6 我正在尝试重命名这些列,但打印时: df.columns.values 这是返回的: ['\xef\xbb\xbfAllotments' 'NDWI' 'TWI'] 当我看df时,它只是说分配。如何删除这些额外的字符 我试过了 df.rename(columns=lambda x: x.strip()) 但是运气不好。这是一个错误。您
Allotments NDWI TWI
1 2 4
2 3 6
我正在尝试重命名这些列,但打印时:
df.columns.values
这是返回的:
['\xef\xbb\xbfAllotments' 'NDWI' 'TWI']
当我看df时,它只是说分配
。如何删除这些额外的字符
我试过了
df.rename(columns=lambda x: x.strip())
但是运气不好。这是一个错误。您可以对内容进行反编码以修复此问题
x = ['\xef\xbb\xbfAllotments', 'NDWI', 'TWI']
x = [s.decode("utf-8-sig").encode("utf-8") for s in x]
print(x) # => ['Allotments', 'NDWI', 'TWI']
您可以将
encoding='utf-8'
作为kwarg传递给,以便正确解码BOM。额外的字符是utf8 BOM。有关更多详细信息,请参阅此答案。这是utf-8我相信你是怎么读取这些数据的?如果是通过read\u csv
读取,那么尝试通过encoding='utf-8'
对值执行简单的str()操作不起作用吗?@user2255757不,不起作用。