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

如何从DataFrame数组列提取元素并按空格拆分取首项?

处理DataFrame数组列提取首个元素的方案

需求

对包含数组格式数据的DataFrame列input做如下处理:

  1. 跳过数组中的null值
  2. 对每个非null的字符串元素,按空格拆分后提取第一个有效元素
  3. 将提取出的元素用逗号连接;若数组仅含null,则输出null

示例

输入(input列各行数据)

[None,'ABC TGF FDSERV',' GHD FGVCF TR UYF']
[None,'GTR ygvv',' HYTR FGVF','GTF BGHY GHYN']
[None]
[None,'GTY DFERFT GHU FRTG']

输出

ABC,GHD
GTR,HYTR,GTF
null
GTY

代码实现

用Pandas的apply方法结合自定义函数完成处理:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'input': [
        [None,'ABC TGF FDSERV',' GHD FGVCF TR UYF'],
        [None,'GTR ygvv',' HYTR FGVF','GTF BGHY GHYN'],
        [None],
        [None,'GTY DFERFT GHU FRTG']
    ]
})

# 定义处理函数
def extract_first_elements(arr):
    # 筛选出非null的元素
    valid_strings = [s for s in arr if s is not None]
    if not valid_strings:
        return 'null'
    # 对每个字符串按空格拆分取第一个元素
    first_parts = [s.split()[0] for s in valid_strings]
    # 用逗号连接结果
    return ','.join(first_parts)

# 生成结果列
df['output'] = df['input'].apply(extract_first_elements)

# 查看结果
print(df['output'].tolist())

说明

  • s.split()[0]会自动忽略字符串开头的连续空格,提取第一个非空的单词,匹配示例中的输出逻辑
  • 若需要保留字符串开头的空格(比如' HYTR FGVF'提取为' HYTR'),可以改用s.split(' ', 1)[0],但注意开头全是空格的字符串会提取为空字符串

内容的提问来源于stack exchange,提问作者ADF-Learner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 08:13:20