看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
本案例主要讲解 Pandas 中文本中提取相应规则数据的方法,用到了 str 访问器的正则查询功能。
有以下的文本序列:
import pandas as pd
ser = pd.Series(['12M12S15M',
'123M15D',
'56M72S'],
name='x')
ser
'''
0 12M12S15M
1 123M15D
2 56M72S
Name: x, dtype: object
'''
需求为找到文本中的数字,并且将不同段的数字用加号连接起来。
既然是 Pandas 的文本数据,我们可以使用 str 访问器来解决相关的问题。提取文本中的数字,最为方便的是正则方法。我们用 findall 配合正则表达式提取数字元素(匹配到的形成一个列表),然后再用 map 调用 join 来连接这些数字。
解决代码为:
ser.str.findall(r'\d+(?=M)').map('+'.join)
'''
0 12+15
1 123
2 56
Name: x, dtype: object
'''
最终解决了需求。
(完)
更新时间:2024-08-18 15:37:58 标签:pandas 文本 数字