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