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

如何合并DataFrame中名称相同但一列为空、一列有值的列?

合并DataFrame中同名列的方法

你的DataFrame存在重复列名,需要将同名列的非空值整合到同一列中,以下是具体实现方法:

核心代码

import pandas as pd
import numpy as np

# 构造你的示例DataFrame
data = {
    'items_group': [np.nan, 'KIT1265', 'KIT1265', 'KIT1198A', np.nan],
    'quantity': [np.nan, 7, 6, 6, np.nan],
    'items_group': ['KIT1240', np.nan, np.nan, np.nan, 'KIT1264'],
    'quantity': [12, np.nan, np.nan, np.nan, 12]
}
df = pd.DataFrame(data)

# 合并同名列
df_merged = df.groupby(df.columns, axis=1).first()

print(df_merged)

代码说明

  • groupby(df.columns, axis=1):按列名对所有列分组,把同名列归为一组
  • first():对每组的每行数据取第一个非空值,自动将分散在不同同名列的非空值整合到同一列下

运行后输出结果即为你期望的格式:

items_group  quantity
0    KIT1240       12.0
1    KIT1265        7.0
2    KIT1265        6.0
3   KIT1198A        6.0
4    KIT1264       12.0

扩展说明

如果同名列的同一行存在多个非空值,需要合并所有非空值(比如转为列表),可以改用以下聚合方式:

df_merged = df.groupby(df.columns, axis=1).agg(lambda x: x.dropna().tolist())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:52:10