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

如何从pandas DataFrame的字符串数组列中提取首个数值

提取pandas字符串数组列首个元素的实现方法

首先明确需求:你当前DataFrame的X列每个单元格是整体为字符串格式的数值数组,需要把每个单元格替换为对应数组的第一个浮点数值。

方法1:安全解析字符串(推荐常规场景使用)

用Python内置的ast.literal_eval安全解析字符串为真实列表,再取第一个元素,不会有eval的安全风险:

  1. 导入依赖库
import pandas as pd
import ast
  1. 直接转换列
df['X'] = df['X'].apply(lambda x: ast.literal_eval(x)[0])

如果需要兼容空数组、格式异常的字符串,加异常处理:

def extract_first(x):
    try:
        arr = ast.literal_eval(x)
        return arr[0] if arr else None
    except:
        # 格式错误时返回默认值,可自行修改
        return None

df['X'] = df['X'].apply(extract_first)

方法2:字符串分割(推荐大数据量场景使用)

不需要解析整个数组,直接通过字符串操作提取第一个数值,性能远高于apply方法:

df['X'] = df['X'].str.lstrip('[').str.split(',', n=1).str[0].astype(float)

逻辑说明:先去掉字符串开头的[,然后只按第一个逗号分割成两部分,取第一部分转成浮点型即可,n=1参数可以避免不必要的分割操作,进一步提升效率。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:45:05