如何从Pandas DataFrame的字符串末尾提取数字?
解决方法
直接用正则表达式匹配字符串末尾的数字序列即可,Pandas的str.extract方法能轻松实现需求:
import pandas as pd mydata = {"Key" : [567, 568, 569, 570, 571, 572] , "Sprint" : ["Max1", "Max2", "DI001 2", "DI001 25", "DAS 100" , "DI001 101"]} df = pd.DataFrame(mydata) # 提取末尾数字并转为整数类型 df["Sprint Number"] = df["Sprint"].str.extract(r"(\d+)$").astype(int) print(df)
关键说明
- 正则表达式
r"(\d+)$"的作用:\d+:匹配1个或多个连续数字$:限定匹配范围为字符串末尾的内容- 括号
():指定要提取的捕获组,str.extract会仅返回该组的内容
- 用
astype(int)将提取到的字符串转为整数,方便后续数值类操作
运行后输出结果:
Key Sprint Sprint Number 0 567 Max1 1 1 568 Max2 2 2 569 DI001 2 2 3 570 DI001 25 25 4 571 DAS 100 100 5 572 DI001 101 101
内容的提问来源于stack exchange,提问作者Pete
相关产品推荐
相关产品推荐

