繁体   English   中英

通过python中的正则表达式替换文本

[英]Substitution of texts through regular expressions in python

我有以下熊猫数据框:

           datetime                   code                                                                      
2016-12-16 07:30:00  "3080 3130 3070"
2016-12-16 08:00:00  "3020 3080 3060 3130"

我想得到:

           datetime           code   
2016-12-16 07:30:00  "08 13 07"
2016-12-16 08:00:00  "02 08 06 13"

我想通过正则表达式解决问题,因为我正在学习它。

test = "3080 3130 3070"
import re
pattern = re.compile('\d{4}')
...

关于如何进行字符串更改的任何建议? 我不知道如何继续

提前非常感谢你

尝试这个:

In [89]: df
Out[89]:
              datetime                 code
0  2016-12-16 07:30:00       3080 3130 3070
1  2016-12-16 08:00:00  3020 3080 3060 3130

In [90]: df.code = \
             df.code.str.extractall(r'\d(\d{2})\d') \
               .unstack() \
               .apply(lambda x: ' '.join(x.dropna()), axis=1)

In [91]: df
Out[91]:
              datetime         code
0  2016-12-16 07:30:00     08 13 07
1  2016-12-16 08:00:00  02 08 06 13

使用此正则表达式查找"

(?<=\s\")([^\"]+?)(?=\")

regexr101上的示例


然后,您可以搜索以下正则表达式以仅使用4个数字中的两个数字:

(?<=\d)(\d{2})(?=\d)

regexr101上的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM