pyd*_*pyd 5 python regex data-analysis dataframe pandas
df=pd.DataFrame({"A":["one","two","three"],"B":["fopur","give","six"]})
Run Code Online (Sandbox Code Playgroud)
当我做,
df.B.str.contains("six").any()
out[2]=True
Run Code Online (Sandbox Code Playgroud)
当我做,
df.B.str.contains("six)").any()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,
C:\ProgramData\Anaconda3\lib\sre_parse.py in parse(str, flags, pattern)
868 if source.next is not None:
869 assert source.next == ")"
--> 870 raise source.error("unbalanced parenthesis")
871
872 if flags & SRE_FLAG_DEBUG:
error: unbalanced parenthesis at position 3
Run Code Online (Sandbox Code Playgroud)
请帮忙!
你需要逃避)的\,因为特殊字符的正则表达式:
df.B.str.contains("six\)").any()
Run Code Online (Sandbox Code Playgroud)
更一般:
import re
df.B.str.contains(re.escape("six)")).any()
Run Code Online (Sandbox Code Playgroud)
您可以设定regex=False在in pandas.Series.str.contains:
df.B.str.contains("six)", regex=False).any()
Run Code Online (Sandbox Code Playgroud)
如果你想匹配,无论情况如何,
df.B.str.contains("Six)", case=False, regex=False).any()
out[]: True
Run Code Online (Sandbox Code Playgroud)
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.contains.html
信息:
括号是正则表达式中需要"转义"的特殊字符,例如,请参见此处或此处.
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |