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

如何用Python拆分管道符分隔的文本文件并生成与属性值数量匹配的列

竖线分隔属性文本转指定格式DataFrame解决方案

直接用Python+Pandas即可实现需求,处理逻辑如下:

  1. 逐行读取文本文件,按|拆分每一行内容,第一部分为属性名,剩余部分为该属性对应的所有取值
  2. 对单取值的属性直接保留原属性名作为标签,多取值的属性按取值序号拼接_val_序号作为新标签
  3. 将所有生成的标签和对应取值整理后转换为DataFrame即可

示例代码:

import pandas as pd

# 替换为你的实际文件路径
file_path = "your_file.txt"
res_list = []

with open(file_path, "r", encoding="utf-8") as f:
    for line in f:
        # 去除首尾空白符,跳过空行
        line_content = line.strip()
        if not line_content:
            continue
        split_parts = line_content.split("|")
        attr = split_parts[0]
        val_list = split_parts[1:]
        # 遍历每个取值生成对应标签
        for seq, val in enumerate(val_list, start=1):
            if len(val_list) == 1:
                new_attr = attr
            else:
                new_attr = f"{attr}_val_{seq}"
            # 如需保留字符串格式可去掉int()转换
            res_list.append([new_attr, int(val)])

# 转换为DataFrame,可根据需求修改列名
df = pd.DataFrame(res_list, columns=["属性标签", "取值"])
print(df)

运行输出结果:

属性标签  取值
0      Attribute1   6
1  Attribute2_val_1  10
2  Attribute2_val_2  15
3  Attribute2_val_3  27
4  Attribute3_val_1   3
5  Attribute3_val_2   7

注:你给出的预期输出存在笔误,Attribute2的第三个取值27对应的标签应为Attribute2_val_3,上述代码逻辑符合实际属性对应规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:24:10