删除Python(希伯来语)中从右向左的字符\u200f
我有一个dataframe,我想要特定列的唯一字符串。字符串是希伯来语 因为我使用的是熊猫数据框,所以我写了:删除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) 如何删除这些字符?(从原始数据框中)您可以通过对名称列中的所有值使用基于函数来过滤掉
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'