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

如何提取DataFrame字符串列中指定内容并转为独立列?

实现方法

假设你使用Pandas处理DataFrame,可以通过字符串分割+字典转换的方式提取目标字段,具体步骤如下:

1. 准备示例数据(已有原始DataFrame可跳过)

import pandas as pd

# 模拟你的原始DataFrame
data = {
    'val': [
        "ID: abc\nName: John\nLast name: Johnson\nAge: 27",
        "ID: igb1\nName: Mike\nLast name: Jackson\nPosition: CEO\nAge: 42"
    ]
}
df = pd.DataFrame(data)

2. 定义字段提取函数

该函数将单个字符串按换行拆分,再把每行内容解析为键值对存入字典:

def parse_text(text):
    field_map = {}
    # 按换行符分割每行内容
    for line in text.split('\n'):
        # 按": "分割键和值(限制分割次数为1,避免值中含冒号导致解析错误)
        if ': ' in line:
            key, val = line.split(': ', 1)
            # 去除键值前后的多余空格
            field_map[key.strip()] = val.strip()
    return field_map

3. 提取字段并生成目标DataFrame

将函数应用到原始列,转换为结构化DataFrame后筛选目标字段:

# 提取所有字段生成新的结构化DataFrame
extracted_data = df['val'].apply(parse_text).apply(pd.Series)

# 筛选需要的Name、Position、Age列,缺失字段自动填充为NaN
result_df = extracted_data[['Name', 'Position', 'Age']]

# 可选:将Age列转换为数值类型
result_df['Age'] = pd.to_numeric(result_df['Age'])

最终结果

执行后result_df的输出如下:

Name Position  Age
0  John      NaN   27
1  Mike      CEO   42

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:20:33