整数串中的隐含字符

2024-10-01 00:20:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我把网上募捐的资料作废,放到一张表格里。你知道吗

当我开始清理数据时,我看到一些元素,例如“2 000000”,被机器读取为“2\xa0000000”。你知道吗

1/这是什么意思?你知道吗

2/如何移除?(因为我想把整列转换成整数)

最好的


Tags: 数据机器元素整数表格资料xa0000000
3条回答

十六进制代码A0的字符是不间断空格。所以说,在大多数情况下,你可以把它当作一个空间。根据我的经验,它主要出现在我处理从microsoftoffice产品生成的一些数据时,或者在人们将HTML代码 放在web上时。你知道吗

不幸的是,pythonsplit()(例如,我不知道如何处理数据)不会将其视为空间。但由于这只是一个独特的特征,您可以通过以下方法解决问题:

longstring.replace('\xA0', ' ').split()

PS:再读一遍你的问题,似乎应该忽略将数字200万作为一个数据实体。所以您可能想用空字符串替换'\xA0'。你知道吗

要修复DataFrame列,请使用:

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

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

具体来说:

from unicodedata import normalize

string1 = "2\xa0000000"

new_string = normalize('NFKD', string1)

print(new_string)

输出:

2 000000 

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

相关问题 更多 >