从pandas中的csv导入后的字符串编码

时间:2017-09-06 01:13:20

标签: python pandas csv dataframe encoding

我正在从csv文件将数据加载到pandas数据帧中。它的形式是第一列中的名称,后跟在其余列中链接到该名称的数据,以及在行中向下的不同名称。数据加载完美,当数据框显示时,一切看起来都很完美,包括特殊字符。

我希望能够通过选择名称找到链接到名称的数据。我试过了两个

df[df['NAME'].isin(['John Smith'])]

并将名称设置为索引,以便我可以

df.loc['John Smith']

两者通常都能正常工作(尽管有更好的方法让我知道)。

然而问题是这个数据集的方法都不适用,可能是因为某种编码问题。如果我希望这个工作,那么要定位的名称必须是

形式
df.loc[' John\xc2\xa0Smith']

因此,即使在查看数据框时名称显示为正常,但名称实际上在开头存储了额外的空格,在名字和姓氏之间存在\ xc2 \ xa0字符串。我对编码和处理这类东西的经验很少,所以我的问题是无论如何都要处理这个问题,这样你就可以将数据框中的名称转换成简单的字符串格式,这样'John Smith'实际上代表了这个名字当你从数据框中选择它时?

编辑:它不仅仅是\xc2\xa0这是一个问题,而且还有各种各样的特殊字母,例如\xc3\xb1

1 个答案:

答案 0 :(得分:0)

你可以用regex快速删除这些。在上面的例子中,您还必须用一个

替换多个空格
import re 

re.sub(r'[^\x00-\x7F]+',' ', text)
相关问题