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

如何合并DataFrame中同名重复列并保留有效值?

合并同名列并保留有效值的实现方案

针对你描述的拥有两个同名column1列、每行仅含一个有效值的DataFrame,可以用以下几种简洁的方法实现合并:

方法一:利用方向填充(推荐)

通过bfill或ffill沿行方向填充空值,再提取单列即可,效率较高:

import pandas as pd

# 构造匹配场景的示例数据
df = pd.DataFrame({
    'column1': [None, None, None, None, 'value2'],
    'column1': ['value1', 'value1', 'value1', 'value1', None]
})

# 合并列:向后填充空值后取第一列,转为目标DataFrame
df_merged = df.bfill(axis=1).iloc[:, 0].to_frame('column1')
# 也可使用向前填充,效果完全一致:df.ffill(axis=1).iloc[:, 0].to_frame('column1')

print(df_merged)

原理:每行仅有一个有效值,方向填充后该行所有列都会被这个有效值覆盖,提取任意一列即可得到目标结果。

方法二:逐行提取非空值

通过apply对每行操作,筛选出非空值并提取:

df_merged = df.apply(lambda row: row.dropna().iloc[0], axis=1).to_frame('column1')

原理:对每行删除空值后,剩下的唯一值就是该行的有效值,将其转为单列DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:50:26