我的数据帧:
pd.DataFrame({'module_num': ['Assignment Module 6 Due', 'Review of Module 2 Checklist', 'Welcome to Module 7 Chapter 25']})
我是python中正则表达式的新手,我希望可以使用regex和panda获得以下输出:
pd.DataFrame({'module_num': ['Module 6', 'Module 2', 'Module 7']})
所以,我试图在字符串";模块";以及后面的数字。在任何情况下,Module和数字之间都有一个空白。
使用,Series.str.extract
regex demo
df.module_num.str.extract("(Module d+)")
0
0 Module 6
1 Module 2
2 Module 7
使用后面跟着空白和数字的命名组到.str.extract
df.module_num.str.extract('(?P<module_num>Modulesd)')
module_num
0 Module 6
1 Module 2
2 Module 7
它的工作原理(?P<name>group)
捕获按名称引用的命名组。名称必须是以字母开头的字母数字序列。
s
用于空白
d
数字专用字符。