繁体   English   中英

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

[英]string encoding after importing from csv in pandas

我正在从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

实际上,您可以使用regex快速删除它们。 在上述情况下,您还必须将多个空格替换为一个

import re 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM