删除Python(希伯来语)中从右向左的字符\u200f

删除Python(希伯来语)中从右向左的字符\u200f,python,python-3.x,pandas,unique,right-to-left,Python,Python 3.x,Pandas,Unique,Right To Left,我有一个dataframe,我想要特定列的唯一字符串。字符串是希伯来语 因为我使用的是熊猫数据框,所以我写了:all_name=history.name.unique()(history是带有name列的数据框) 我得到了带有\u200f字符的奇怪副本。比如和另一个带有\u200f all_names array(['\u200fערן', 'ערן', ...., None], dtype=object) 如何删除这些字符?(从原始数据框中)您可以通过对名称列中的所有值使用基于函数来过滤掉

我有一个dataframe,我想要特定列的唯一字符串。字符串是希伯来语

因为我使用的是熊猫数据框,所以我写了:
all_name=history.name.unique()
history
是带有
name
列的数据框)

我得到了带有
\u200f
字符的奇怪副本。比如
和另一个带有
\u200f

all_names
array(['\u200fערן', 'ערן',  ...., None], dtype=object)

如何删除这些字符?(从原始数据框中)

您可以通过对
名称
列中的所有值使用基于函数来过滤掉所有非字母和非空白(按Unicode)来清除
名称
字符串

例如(假设Python 3正确处理Unicode):

(包括数字)和
\s
包含所有Unicode空白字符

顺便说一句,困扰您的
\u200f
(也称为
从右到左标记
)位于Unicode码点类别“其他,格式”:

因此,您可以确保它将与上面的过滤器一起删除

>>> import re
>>> history.name.apply(lambda s: s and re.sub('[^\w\s]', '', s))
>>> import unicodedata
>>> unicodedata.name('\u200f')
'RIGHT-TO-LEFT MARK'
>>> unicodedata.category('\u200f')
'Cf'