替换python(pandas)中的非ascii空格字符

替换python(pandas)中的非ascii空格字符,python,pandas,Python,Pandas,我正在处理一些从excel电子表格中提取的识别号。它们是数字和字符串的混合体。(手动维护的excel表格)我将其加载到pandas中,并注意到数据中有一些空格。我在df上运行了一个过滤器,但只返回了2行。所以,我进去运行了以下代码: for i in exceldata['CL ID #']: print(repr(str(i))) 我得到了一些奇怪的结果。看起来这些空格根本不是空格,而是某种奇怪的非ascii字符。以下是一些值以及它们以不同方式打印的外观 for i in excel

我正在处理一些从excel电子表格中提取的识别号。它们是数字和字符串的混合体。(手动维护的excel表格)我将其加载到pandas中,并注意到数据中有一些空格。我在df上运行了一个过滤器,但只返回了2行。所以,我进去运行了以下代码:

for i in exceldata['CL ID #']:
    print(repr(str(i)))
我得到了一些奇怪的结果。看起来这些空格根本不是空格,而是某种奇怪的非ascii字符。以下是一些值以及它们以不同方式打印的外观

for i in exceldata['ID']:
    print(repr(str(i)))

'502705'

'527167\xa0'

'575405\xa0'
…以及正常打印的相同值

exceldata['ID']

   502705
   502717 
   537545 
我已经找到了改变价值观的方法。但是,这里是我的请求的不同之处:我需要清理数据帧中的这些奇怪值。我不知道如何在设置逻辑中完成它。这是一个非常简单的修复方法,但是你不能在熊猫df上使用循环,因为你只编辑了一个副本,而不是实际的df本身。感谢您的帮助/指导


编辑:这不是重复的。我需要能够在pandas数据帧上进行迭代,而这正是让我大吃一惊的部分。

鉴于列包含数字和字符串的混合体,您最好将所有内容转换为字符串并在列上使用。例如,要用列中的空字符串替换
\xa0

exceldata['ID'] = exceldata['ID'].astype(str).str.replace(u'\xa0', '')
#                                ^^^^^^^^^^^^ potentially unnecessary, depending on the format of your data

这将用值的字符串表示形式替换
ID
列,但删除
\xa0
字符。

如果列包含数字和字符串的混合,最好将所有内容转换为字符串并在列上使用。例如,要用列中的空字符串替换
\xa0

exceldata['ID'] = exceldata['ID'].astype(str).str.replace(u'\xa0', '')
#                                ^^^^^^^^^^^^ potentially unnecessary, depending on the format of your data

这将用值的字符串表示形式替换
ID
列,但删除
\xa0
字符。

可能重复的Awesome,这是有效的。我真的很感激。我想我错过了.astype(str)太棒了,这很有效。我真的很感激。我想我错过了.astype(str)