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

如何从含'x ± a'格式的Pandas序列提取数值到NumPy数组?

解决方案

不需要把Series转成嵌套列表,Pandas自带的字符串处理方法可以直接批量操作每个元素,高效又简单,给你两种实用方法:

方法一:字符串分割法

直接用str.split按±分割字符串,取前半部分后清理空格、转数值,最后转成NumPy数组:

import pandas as pd
import numpy as np

# 示例Series
s = pd.Series(['1.2 ± 0.3', '4.5 ± 0.2', '6.7 ± 0.1'])

# 提取数值并转NumPy数组
X = s.str.split('±').str[0].str.strip().astype(float).to_numpy()

步骤拆解:

  • str.split('±'):把每个字符串按±拆成两个元素的列表
  • str[0]:取出每个列表的第一个元素(也就是你要的x/y/z部分)
  • str.strip():去掉字符串前后的空格
  • astype(float):把字符串转成浮点数值
  • to_numpy():将Series转为NumPy数组

方法二:正则表达式提取法

如果字符串格式固定,用正则匹配开头的数字部分更精准:

X = s.str.extract(r'^([\d.]+)').astype(float).to_numpy().flatten()
  • str.extract(r'^([\d.]+)'):匹配字符串开头的数字和小数点,提取出目标数值
  • astype(float):转成浮点型
  • to_numpy().flatten():把提取得到的DataFrame转成一维NumPy数组

两种方法都能得到你想要的结果,比如示例中运行后X会是array([1.2, 4.5, 6.7])。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:55:21