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

DataFrame存在重复列名时如何将同名列按行合并 空值填充NA

基于Pandas的实现方法

核心思路

  • 提取DataFrame的所有唯一列名
  • 对每个唯一列名,取出所有对应同名列的数据,拼接为长序列
  • 将所有列的长序列合并为新DataFrame,长度不足的位置自动填充NA

可运行代码示例

import pandas as pd
import numpy as np

# 示例:构造有重复列名的测试DataFrame,可替换为你自己的数据集
df = pd.DataFrame(
    [[1,2,3,4],[5,6,7,8],[9,10,11,12]],
    columns=['A','B','A','B']
)

# 第一步:获取所有去重后的列名
unique_cols = df.columns.unique()

res_dict = {}
for col in unique_cols:
    # 取出当前列名对应的所有列,按列优先顺序展平为一维序列
    col_values = df.loc[:, col].values.flatten(order='F')
    res_dict[col] = pd.Series(col_values)

# 合并所有列,长度不足的位置自动补空
result = pd.DataFrame(res_dict)
# 统一将空值替换为NA格式
result = result.fillna(pd.NA)

代码说明

  • order='F'指定按列优先顺序展平同名列数据,即先取第一组同名列的所有行数据,再追加下一组同名列的所有行数据,符合拼接需求;如果需要按行优先顺序拼接可改为order='C'
  • 方案原生支持列数60-70的数据集规模,无需额外性能优化即可正常运行
  • 若你的数据集存在非数值类型的列,该逻辑同样兼容,不需要额外修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:06:02