如何用Pandas从含'fud'的Sentence列提取后续数字生成Number列?
解决方案
可以通过正则表达式结合pandas的str.extract()方法实现需求,具体代码如下:
import pandas as pd # 读取Excel文件 excel_file = 'SUT.xlsx' df = pd.read_excel(excel_file) # 提取'fud'后的数字,正则r'fud(\d+)'匹配fud后面的连续数字 df['Number'] = df['Sentence'].str.extract(r'fud(\d+)') # 将未匹配到内容的行转为空字符串,和预期效果一致 df['Number'] = df['Number'].fillna('') print(df)
代码说明:
str.extract(r'fud(\d+)'):正则表达式r'fud(\d+)'会匹配字符串中的'fud',并精准捕获其后的连续数字(\d+表示一个或多个数字),extract方法会自动将捕获到的内容提取为新列。fillna(''):针对不含'fud'的行,将Number列的空值转为空字符串,和预期输出格式对齐。
内容的提问来源于stack exchange,提问作者SPC
相关产品推荐
相关产品推荐

