Python 类整数字符串中的隐藏字符

Python 类整数字符串中的隐藏字符,python,pandas,Python,Pandas,我从网络上删除了有关筹款的数据,并将其放入表格中 当我开始清理数据时,我看到一些元素,例如2000000,被机器读取为20000000 1/这是什么意思 2/我如何删除它?因为我想把整个列转换成整数 最好的办法是,问题是字符串中有以Unicode字符形式读入的转义序列。删除这些字符而不在每个特定显示上使用replace的最简单方法是使用unicodata包 具体而言: from unicodedata import normalize string1 = "2\xa0000000" new_

我从网络上删除了有关筹款的数据,并将其放入表格中

当我开始清理数据时,我看到一些元素,例如2000000,被机器读取为20000000

1/这是什么意思

2/我如何删除它?因为我想把整个列转换成整数


最好的办法是,问题是字符串中有以Unicode字符形式读入的转义序列。删除这些字符而不在每个特定显示上使用replace的最简单方法是使用unicodata包

具体而言:

from unicodedata import normalize

string1 = "2\xa0000000"

new_string = normalize('NFKD', string1)

print(new_string)
输出:

2 000000 

这个包已经内置到我的机器中,但是如果您使用不同于我的方法来构建python包,您可能需要安装它。我发现这样更好,因为这种规范化可以跨多种格式工作,所以每次看到其他格式不正确的东西时,您不需要使用replace。这是一个转义序列

问题是,在字符串中有作为Unicode字符读入的转义序列。删除这些字符而不在每个特定显示上使用replace的最简单方法是使用unicodata包

具体而言:

from unicodedata import normalize

string1 = "2\xa0000000"

new_string = normalize('NFKD', string1)

print(new_string)
输出:

2 000000 
这个包已经内置到我的机器中,但是如果您使用不同于我的方法来构建python包,您可能需要安装它。我发现这样更好,因为这种规范化可以跨多种格式工作,所以每次看到其他格式不正确的东西时,您不需要使用replace。这是一个转义序列

十六进制代码A0的字符是不间断空格。也就是说,在大多数情况下,您可以将其视为一个空间。根据我的经验,当我处理从Microsoft Office产品生成的一些数据时,或者当人们将HTML代码放在web上时,它通常会出现

不幸的是,例如python split,我不知道如何处理数据,但它不会将数据视为空间。但由于它只是一个独特的字符,您可以通过以下方式解决此问题:

longstring.replace('\xA0', ' ').split()
PS:再次阅读您的问题,似乎应该忽略以数据实体形式生成数字200万。因此,您可能需要将“\xA0”替换为空字符串。

十六进制代码A0的字符是不间断空格。也就是说,在大多数情况下,您可以将其视为一个空间。根据我的经验,当我处理从Microsoft Office产品生成的一些数据时,或者当人们将HTML代码放在web上时,它通常会出现

不幸的是,例如python split,我不知道如何处理数据,但它不会将数据视为空间。但由于它只是一个独特的字符,您可以通过以下方式解决此问题:

longstring.replace('\xA0', ' ').split()
PS:再次阅读您的问题,似乎应该忽略以数据实体形式生成数字200万。因此,您可能希望将“\xA0”替换为空字符串。

要修复数据帧列,请使用:

df['col'] = df['col'].str.replace('\D', '').astype(int)
要修复DataFrame列,请使用:

df['col'] = df['col'].str.replace('\D', '').astype(int)

这是一个逃逸序列,在这里,对于一个不间断的空间。您可能希望用空字符串替换所有空白,然后重新解析。或者,如果是系统性的,则传递\xa以读取\u csv的数千个参数。这是一个转义序列,用于非中断空间。您可能希望用空字符串替换所有空白,然后重新解析。或者,如果是系统性的,则传递\xa以读取\u csv的参数。