首页 > 解决方案 > Python - 你如何添加 \ 和 | 到 str.contains()

问题描述

我正在清理熊猫数据框中的一列,以摆脱包含某些字符的垃圾用户名。这是示例:

d = {'username': ["11111", "222!22", "21212!", "85511$", "8552$", "115522@@"]}
df = pd.DataFrame(data=d)

    username
0   11111
1   222!22
2   21212!
3   85511$
4   8552$
5   115522@@
....

我正在使用以下内容,它按预期工作:

df[~df['username'].str.contains('~|`|!|@|#|\$|%|\^|&|\*|\(|\)|-|_|\+|=|{|\[|}|]|:|;|"|\'|<|,|>|\.|/|\?')]

但我想再添加两个字符:

\|

当我尝试添加这些\\for\\|for|但我收到错误。我该怎么办?

标签: pythonpython-3.xstringpandas

解决方案


尝试r在字符串前面添加 a ,以便 Python 将您的字符串解释为原始字符串:

df[~df['username'].str.contains(r'~|`|!|@|#|\$|%|\^|&|\*|\(|\)|-|_|\+|=|{|\[|}|]|:|;|"|\'|<|,|>|\.|/|\?')]

推荐阅读