我有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}')
...
关于如何在字符串中进行更改的任何建议?我不知道如何继续,
非常感谢您提前
答案 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\")([^\"]+?)(?=\")
然后,您可以搜索以下正则表达式,仅使用4个数字中的两个数字:
(?<=\d)(\d{2})(?=\d)