我正在从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
答案 0 :(得分:0)
你可以用regex快速删除这些。在上面的例子中,您还必须用一个
替换多个空格import re
re.sub(r'[^\x00-\x7F]+',' ', text)