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

Python如何从pandas DataFrame的字符串单元格中提取多个浮点数值

失效原因

你使用的正则未匹配逗号两侧可能存在的空格,且未对小数点做转义,当字符串中逗号前后存在空格(大部分场景下列表格式的字符串都会带空格)时就会完全匹配失败,返回NaN。

解决方案

方法1:修正正则表达式

适配逗号两侧任意数量的空格,同时转义小数点保证匹配精度:

# 提取两个数值
res = df['column_name'].str.extract(r'(\d+\.\d+)\s*,\s*(\d+\.\d+)').astype('float')
print(res)

如果需要自定义列名,可以直接赋值:

df[['num1', 'num2']] = df['column_name'].str.extract(r'(\d+\.\d+)\s*,\s*(\d+\.\d+)').astype('float')

方法2:直接解析列表字符串(更推荐)

如果单元格内容本身是合法的Python列表格式,直接用ast.literal_eval解析更稳妥,不需要调整正则即可适配任意长度的数值列表:

import ast
# 解析字符串为列表后拆分多列
df[['num1', 'num2']] = df['column_name'].apply(ast.literal_eval).apply(pd.Series)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:54:04