删除 Python 中从右到左的字符 \u200f(希伯来语)
Remove Right-to-left character \u200f in Python (Hebrew)
我有一个数据框,我想要特定列的唯一字符串。字符串是希伯来语。
因为我正在使用 pandas 数据框,所以我写道:all_names = history.name.unique()
(history
是带有 name
列的数据框)。
我收到带有 \u200f
字符的奇怪重复项。喜欢 ערן
和另一个 \u200f
all_names
array(['\u200fערן', 'ערן', ...., None], dtype=object)
如何删除这些字符? (来自原始数据框)
您可以通过基于 apply
ing a re.sub
的函数过滤掉所有非字母和非空格(Unicode-wise)到 [=] 中的所有值来清理 name
字符串12=]列。
例如(假设 Python 3,可以正确处理 Unicode):
>>> import re
>>> history.name.apply(lambda s: s and re.sub('[^\w\s]', '', s))
\w
includes all Unicode word characters(包括数字)和 \s
包括所有 Unicode 空白字符。
顺便说一下,困扰您的 \u200f
(又名 RIGHT-TO-LEFT MARK
)属于 Unicode 代码点类别 "Other, Format":
>>> import unicodedata
>>> unicodedata.name('\u200f')
'RIGHT-TO-LEFT MARK'
>>> unicodedata.category('\u200f')
'Cf'
所以,您可以确定它会被上面的过滤器删除。
我有一个数据框,我想要特定列的唯一字符串。字符串是希伯来语。
因为我正在使用 pandas 数据框,所以我写道:all_names = history.name.unique()
(history
是带有 name
列的数据框)。
我收到带有 \u200f
字符的奇怪重复项。喜欢 ערן
和另一个 \u200f
all_names
array(['\u200fערן', 'ערן', ...., None], dtype=object)
如何删除这些字符? (来自原始数据框)
您可以通过基于 apply
ing a re.sub
的函数过滤掉所有非字母和非空格(Unicode-wise)到 [=] 中的所有值来清理 name
字符串12=]列。
例如(假设 Python 3,可以正确处理 Unicode):
>>> import re
>>> history.name.apply(lambda s: s and re.sub('[^\w\s]', '', s))
\w
includes all Unicode word characters(包括数字)和 \s
包括所有 Unicode 空白字符。
顺便说一下,困扰您的 \u200f
(又名 RIGHT-TO-LEFT MARK
)属于 Unicode 代码点类别 "Other, Format":
>>> import unicodedata
>>> unicodedata.name('\u200f')
'RIGHT-TO-LEFT MARK'
>>> unicodedata.category('\u200f')
'Cf'
所以,您可以确定它会被上面的过滤器删除。