K. *_*ama 2 regex series pandas
我能理解为什么str.startswith()不处理正则表达式:
col1
0 country
1 Country
i.e : df.col1.str.startswith('(C|c)ountry')
Run Code Online (Sandbox Code Playgroud)
它返回所有值False:
col1
0 False
1 False
Run Code Online (Sandbox Code Playgroud)
Mad*_*ist 10
Series.str.startswith
不接受正则表达式,因为它的行为类似于str.startswith
vanilla Python,它不接受正则表达式.另一种方法是使用正则表达式匹配(如文档中所述):
df.col1.str.contains('^[Cc]ountry')
Run Code Online (Sandbox Code Playgroud)
字符类[Cc]
可能是一个更好的方式来满足C
或c
超过(C|c)
,除非你当然需要捕获使用哪个字母.在这种情况下,你可以做到([Cc])
.
Series.str.startswith
不接受正则表达式。使用Series.str.match
来代替:
df.col1.str.match(r'(C|c)ountry', as_indexer=True)
Run Code Online (Sandbox Code Playgroud)
输出:
df.col1.str.match(r'(C|c)ountry', as_indexer=True)
Run Code Online (Sandbox Code Playgroud)