假设我有以下 pandas 系列:
tmp = pd.Series(['k.; mlm', '(+).', 'a;b/c', '!".: abc', 'abc dfg', 'qwert@'])
我想,对于所有元素,使用正则表达式删除仅标点符号的单词,我试图使用类似的东西:
tmp.str.replace(regex, '')
我的最终系列将是:
tmp = pd.Series(['k.; mlm', '', 'a;b/c', 'abc', 'abc dfg', 'qwert@'])
编辑:我正在考虑使用 unicode 表标点符号
最佳答案
你可以使用 str.contains
使用模式 [^\W]
来匹配至少包含一个不是标点符号的字符的字符串。
请注意,[]
匹配集合中包含的任何字符,通过在开头添加 ^
,将匹配所有不在集合中的字符。
tmp.where(tmp.str.contains(r'[^\W]'), '')
0 k.; mlm
1
2 a;b/c
3 !".: abc
4 abc dfg
5 qwert@
dtype: object
关于python - 删除 pandas 系列中仅是标点符号的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61468634/