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

如何将分散在多列的标识符与对应值合并至新列?

解决方案:整合分散的标识符与关联值列

问题描述

输入数据中,标识符及其关联值分散在多组独立列中,需将所有标识符与对应值整合为标识符和关联值两列的格式。

实现代码

手动指定列组(适用于列名无规律的情况)

import pandas as pd

# 读取数据(替换为你的数据读取方式,如read_excel/read_csv)
df = pd.read_excel("你的数据文件.xlsx")

# 定义每一组标识符列与值列的对应关系
column_pairs = [
    ("标识符1", "值1"),
    ("标识符2", "值2"),
    ("标识符3", "值3")
]

# 初始化结果表
result = pd.DataFrame(columns=["标识符", "关联值"])

# 遍历处理每一列组并合并
for id_col, val_col in column_pairs:
    # 提取当前列组并重命名为统一列名
    temp_df = df[[id_col, val_col]].rename(columns={id_col: "标识符", val_col: "关联值"})
    # 过滤掉空标识符行
    temp_df = temp_df.dropna(subset=["标识符"])
    # 合并到结果
    result = pd.concat([result, temp_df], ignore_index=True)

# 重置索引
result = result.reset_index(drop=True)

自动匹配列组(适用于列名有规律的情况)

如果标识符列均包含“标识符”关键词,值列均包含“值”关键词,可自动配对列:

import pandas as pd

df = pd.read_excel("你的数据文件.xlsx")

# 自动筛选标识符列和值列
id_cols = [col for col in df.columns if "标识符" in col]
val_cols = [col for col in df.columns if "值" in col]
# 按顺序配对列组
column_pairs = list(zip(id_cols, val_cols))

# 后续处理同手动指定列组的代码
result = pd.DataFrame(columns=["标识符", "关联值"])
for id_col, val_col in column_pairs:
    temp_df = df[[id_col, val_col]].rename(columns={id_col: "标识符", val_col: "关联值"})
    temp_df = temp_df.dropna(subset=["标识符"])
    result = pd.concat([result, temp_df], ignore_index=True)

result = result.reset_index(drop=True)

说明

  1. 核心逻辑:将每一组标识符-值列单独提取并重命名为统一列名,再合并所有组数据
  2. 过滤空值:通过dropna移除无有效标识符的行,避免无效数据
  3. 灵活性:手动指定列组适用于列名无规律的场景,自动配对适用于列名有统一规则的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:57:51