Pandas:从其他列提取子串创建新列的高效方法
高效提取数值的批量实现方法
针对固定前缀FSA: 的列数据,无需逐行处理的高效方案分两种常见场景:
Python Pandas 处理表格数据
利用Pandas的字符串批量处理能力配合正则表达式,直接整列提取:
- 假设数据存在DataFrame的
original_col列中 - 使用
str.extract匹配前缀后的数值,支持整数、小数格式 - 转为数值类型以便后续计算
示例代码:
import pandas as pd # 示例数据 df = pd.DataFrame({ 'original_col': [ 'FSA: 123.45 US DOLLAR', 'FSA: 67.89 JAPANESE YEN', 'FSA: 99 EURO', 'FSA: 1234.5 HONGKONG DOLLAR' ] }) # 提取数值并创建新列 df['numeric_value'] = df['original_col'].str.extract(r'FSA: (\d+\.?\d*)').astype(float) # 输出结果 print(df['numeric_value'])
运行后会得到:
0 123.45 1 67.89 2 99.00 3 1234.50 Name: numeric_value, dtype: float64
Excel 表格处理
如果用Excel处理,可通过以下公式批量生成新列:
支持Excel 365的正则函数:
=REGEXEXTRACT(A1, "FSA: (\d+\.?\d*)")下拉填充即可批量提取所有行的数值,再将单元格格式转为数值类型。
兼容旧版Excel的函数组合:
=VALUE(TEXTBEFORE(TEXTAFTER(A1, "FSA: "), " "))先提取
FSA:后的内容,再取第一个空格前的部分,最后转为数值。
内容的提问来源于stack exchange,提问作者Nick D'Agostino
相关产品推荐
相关产品推荐

