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

如何在Pandas中提取列表中的单个值?寻求更优数值提取方案

高效提取DataFrame预算列数值的几种方法

嘿,我来给你分享几个比多次调用str.replace更高效简洁的方案,刚好适配你这种带[]和%的数值提取场景!

方法1:正则提取核心数值(最推荐)

直接用str.extract精准匹配数字和小数点部分,一步到位拿到我们需要的数值:

df['budget_clean'] = df['budget'].str.extract(r'(\d+\.\d+)').astype(float)

运行后就能得到你想要的结果:

0    45.55
1    34.54
2    12.21
3    99.12
Name: budget_clean, dtype: float64

这个方法的优势是精准定位,只提取我们需要的数值部分,避免多余的字符串操作,大数据集下效率会比多次replace高不少。

方法2:一次性移除首尾符号

先用str.strip去掉首尾的方括号,再替换掉百分号,比两次replace少一次调用:

df['budget_clean'] = df['budget'].str.strip('[]').str.replace('%', '').astype(float)

strip('[]')会一次性清除字符串开头的[和结尾的],代码更简洁,逻辑也更清晰。

方法3:批量替换所有非目标字符

用正则匹配所有不是数字和小数点的字符,一次性替换为空:

df['budget_clean'] = df['budget'].str.replace(r'[^\d.]', '', regex=True).astype(float)

这里[^\d.]表示匹配所有**不是数字(\d)和小数点(.)**的字符,一次操作就搞定所有多余符号,代码最短。

补充说明:列表中仅包含一个元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:19:34