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

时间:2017-01-30 21:42:22

标签: python regex pandas

我有pandas的后续数据框:

           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}')
...

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

非常感谢您提前

2 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:0)

使用此正则表达式查找"

之间的所有内容
(?<=\s\")([^\"]+?)(?=\")

Example on regexr101

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

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

Example on regexr101