我在尝试从我的Pandas数据框中删除所有特殊字符却遇到了问题。你可以帮我解决吗?
我尝试过类似于这样的方法:
df = df.replace(r'\W+', '', regex=True)
因为我在最近的一篇帖子中找到了它。 但是当我执行时,特殊字符“'”例如不会消失。
我知道在PostgresSQL中有类似[^\w]
的东西可以获得一个特定的列表。 Python中是否有类似的东西可以做到:
a)仅保留字母
b)仅保留数字
c)保留字母和数字
感谢您的帮助!
我在尝试从我的Pandas数据框中删除所有特殊字符却遇到了问题。你可以帮我解决吗?
我尝试过类似于这样的方法:
df = df.replace(r'\W+', '', regex=True)
因为我在最近的一篇帖子中找到了它。 但是当我执行时,特殊字符“'”例如不会消失。
我知道在PostgresSQL中有类似[^\w]
的东西可以获得一个特定的列表。 Python中是否有类似的东西可以做到:
a)仅保留字母
b)仅保留数字
c)保留字母和数字
感谢您的帮助!
[^0-9a-zA-Z ]
匹配Unicode字母和数字,但这会移除太多内容。
使用:
df = df.replace(r'[^\w\s]|_', '', regex=True)
请查看证明
说明
--------------------------------------------------------------------------------
[^\w\s] any character except word characters (\p{L}, \p{N}, _)
and whitespace (\p{Z})
--------------------------------------------------------------------------------
| OR
--------------------------------------------------------------------------------
_ '_'
只需执行以下操作:
df = df.replace(r'[^0-9a-zA-Z ]', '', regex=True).replace("'", '')
\w
和\W
处理的是单词字符,这不仅仅包括A-Z
(更不用说非英语字母)和数字。那么像O'Reily
这样的单词怎么办?还有挪威语单词呢? - Panagiotis Kanavos