我已经尝试了一段时间解决这个问题。我正在尝试从DB_user列中删除非ASCII字符并用空格替换它们。但是我一直收到一些错误信息。下面是我的数据框的样子:
+----------------------------------------------------------- | DB_user source count | +----------------------------------------------------------- | ???/"Ò|Z?)?]??C %??J A 10 | | ?D$ZGU ;@D??_???T(?) B 3 | | ?Q`H??M'?Y??KTK$?Ù‹???ЩJL4??*?_?? C 2 | +-----------------------------------------------------------
我使用了在SO上研究该问题时发现的以下函数:
def filter_func(string):
for i in range(0,len(string)):
if (ord(string[i])< 32 or ord(string[i])>126
break
return ''
And then using the apply function:
df['DB_user'] = df.apply(filter_func,axis=1)
我一直收到这个错误信息:
'ord()期望一个字符,但发现长度为66的字符串',u'出现在索引2处'然而,我认为通过在filter_func函数中使用循环,我正在通过将字符输入到'ord'中来处理此问题。因此,一旦遇到非ASCII字符,它就应该被替换为空格。
有人可以帮帮我吗?
谢谢!
\x00
可以替换为一个空格,使这个答案在行为上与被接受的答案相匹配。 - Brandon Rhodes