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

如何将含GROUP_FIELD类键的文本转换为指定结构的DataFrame

处理结构化文本生成指定DataFrame

需求说明

原始文本包含GROUP_FIELD_NAME、GROUP_FIELD_VALUE、GROUP_FILENAME三类键,需转换为包含group_field_name、group_field_value、group_file_name三列的DataFrame,每个字段-值对对应一行并关联所属文件名。

原始数据

GROUP_FIELD_NAME:BKR_ID
GROUP_FIELD_VALUE:T80
GROUP_FIELD_NAME:GROUP_OFFSET
GROUP_FIELD_VALUE:0
GROUP_FIELD_NAME:GROUP_LENGTH
GROUP_FIELD_VALUE:0
GROUP_FIELD_NAME:FIRM_ID
GROUP_FIELD_VALUE:KIZEM
GROUP_FILENAME:000000018.pdf
GROUP_FIELD_NAME:BKR_ID
GROUP_FIELD_VALUE:T80
GROUP_FIELD_VALUE:P
GROUP_FIELD_NAME:FI_ID
GROUP_FIELD_VALUE:
GROUP_FIELD_NAME:RUN_DTE
GROUP_FIELD_VALUE:20220208
GROUP_FIELD_NAME:FIRM_ID
GROUP_FIELD_VALUE:KIZEM
GROUP_FILENAME:000000019.pdf

解决方案(Python + Pandas)

代码实现

import pandas as pd

# 原始文本内容
raw_text = """GROUP_FIELD_NAME:BKR_ID
GROUP_FIELD_VALUE:T80
GROUP_FIELD_NAME:GROUP_OFFSET
GROUP_FIELD_VALUE:0
GROUP_FIELD_NAME:GROUP_LENGTH
GROUP_FIELD_VALUE:0
GROUP_FIELD_NAME:FIRM_ID
GROUP_FIELD_VALUE:KIZEM
GROUP_FILENAME:000000018.pdf
GROUP_FIELD_NAME:BKR_ID
GROUP_FIELD_VALUE:T80
GROUP_FIELD_VALUE:P
GROUP_FIELD_NAME:FI_ID
GROUP_FIELD_VALUE:
GROUP_FIELD_NAME:RUN_DTE
GROUP_FIELD_VALUE:20220208
GROUP_FIELD_NAME:FIRM_ID
GROUP_FIELD_VALUE:KIZEM
GROUP_FILENAME:000000019.pdf"""

# 初始化存储容器
data_records = []
current_filename = None
current_field = None

# 逐行解析文本
for line in raw_text.split('\n'):
    line = line.strip()
    if not line:
        continue
    key, val = line.split(':', 1)
    if key == 'GROUP_FILENAME':
        current_filename = val
    elif key == 'GROUP_FIELD_NAME':
        current_field = val
    elif key == 'GROUP_FIELD_VALUE':
        if current_field and current_filename:
            data_records.append({
                'group_field_name': current_field,
                'group_field_value': val,
                'group_file_name': current_filename
            })

# 生成DataFrame
result_df = pd.DataFrame(data_records)
print(result_df)

输出结果

group_field_name group_field_value group_file_name
0            BKR_ID               T80   000000018.pdf
1       GROUP_OFFSET                 0   000000018.pdf
2       GROUP_LENGTH                 0   000000018.pdf
3            FIRM_ID             KIZEM   000000018.pdf
4            BKR_ID               T80   000000019.pdf
5            BKR_ID                 P   000000019.pdf
6              FI_ID                    000000019.pdf
7            RUN_DTE          20220208   000000019.pdf
8            FIRM_ID             KIZEM   000000019.pdf

关键处理说明

  • 自动关联字段-值对到最近的GROUP_FILENAME对应的文件
  • 支持一个字段对应多个值的场景(如第二个BKR_ID生成两行记录)
  • 保留空的GROUP_FIELD_VALUE内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:25:41