我正在解析csv文件,并希望在它们出现时删除非ascii字符 . 实际上,我只需要数字,但当我尝试删除非数字字符时,我得到一个 UnicodeEncodeError
.
我有以下功能:
def remove_non_ascii(text):
return ''.join(re.findall("\d+", str(text)))
也试过(只是为了删除非ascii字符):
def remove_non_ascii(text):
return ''.join(i for i in str(text) if ord(i)<128)
当我打印以下结果时,我得到了正确的结果(对于这两个函数)
print(remove_non_ascii('E-Mail Adresse des Empfängers'))
但是,当我将函数应用于dataframe列 df[col] = df[col].apply(remove_non_ascii)
时,我得到 UnicodeEncodeError
.
我究竟做错了什么 ?
1 回答
一种可能的解决方案:您需要
import string
并将功能更改为这将删除不在集合中的所有字符
刚注意到你说你只需要数字 . 这是一个更有用的解决方案,无需导入字符串: