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

Python中如何合并pandas DataFrame的多个重复同名列

实现代码

处理思路如下:

  • 先筛选出所有带Name的列,和对应的X/Y/Z数值列按顺序配对
  • 每对列单独生成子表,统一Name列的命名
  • 拼接所有子表后将缺失值填充为'-'

完整可运行代码:

import pandas as pd

# 构造模拟的原始数据(如果是读入文件的话直接用pd.read_csv等方法读取即可)
df = pd.DataFrame({
    'Name': ['Jack', 'Celine'],
    'X': [5, 14],
    'Name.1': ['Maria', 'Andrew'],
    'Y': [8, 14],
    'Name.2': ['John', 'Jonathan'],
    'Z': [12, 21]
})

# 提取所有Name列和对应的数值列
name_cols = [col for col in df.columns if col.startswith('Name')]
value_cols = ['X', 'Y', 'Z']

res_list = []
for name_col, val_col in zip(name_cols, value_cols):
    # 生成每组的子表,统一列名
    tmp_df = df[[name_col, val_col]].rename(columns={name_col: 'Name'})
    res_list.append(tmp_df)

# 拼接所有子表,填充缺失值
result = pd.concat(res_list, ignore_index=True).fillna('-')
print(result)

运行后输出结果和你要求的完全一致。

内容的提问来源于stack exchange,提问作者Ataberk Özaydın

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:15:02