You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用lambda函数将DataFrame列中的带前缀字符串转换为纯数值

嘿,这个需求用lambda函数配合字符串分割就能轻松搞定!刚好你的数据都是「前缀_数值」的格式,核心思路就是把字符串按下划线拆分,提取后面的数值部分再转成浮点数就行。

先给你一个完整的可运行示例:

import pandas as pd

# 模拟你的DataFrame
df = pd.DataFrame({
    'original_col': ['abc_0.1', 'aabbcc_-0.010', 'qwerty_0.555']
})

# 用lambda函数转换列
df['numeric_col'] = df['original_col'].apply(lambda x: float(x.split('_')[-1]))

print(df['numeric_col'])
# 输出结果:
# 0    0.100
# 1   -0.010
# 2    0.555
# Name: numeric_col, dtype: float64

代码解释:

  • x.split('_'):把每个字符串按下划线分割成列表,比如'abc_0.1'会变成['abc', '0.1']
  • [-1]:取分割后列表的最后一个元素,也就是我们需要的数值字符串
  • float():把字符串转换成浮点数类型,得到纯数值

如果你的数据里可能存在多个下划线的情况(比如'abc_def_0.2'),推荐改用rsplit('_', 1),它会从字符串右侧只分割一次,确保我们取到的是最后一个下划线后面的数值:

df['numeric_col'] = df['original_col'].apply(lambda x: float(x.rsplit('_', 1)[-1]))

这样处理后,不管前缀里有多少下划线,都能准确提取到后面的数值啦!

内容的提问来源于stack exchange,提问作者user19758369

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 16:03:14