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

pandas中如何基于列名将同DataFrame的多列合并为单列

pandas多列合并为单列解决方案

针对你描述的每行仅存在一个非NaN值的场景,pandas内置多种方法可以快速实现需求,以下是3种常用方案:

  • 方案1:逐行填充法(性能最优,适合大数据量)
    因为每行仅存在一个非空值,按行填充空值后取任意一列即可获得所有有效值:
# 按行向后填充空值后取第一列
df['name'] = df.bfill(axis=1).iloc[:, 0]
# 仅保留合并后的新列
df = df[['name']]
  • 方案2:stack自动丢弃空值法
    stack方法会将列转为行层级,默认丢弃NaN值,刚好匹配你的场景:
df['name'] = df.stack().reset_index(drop=True)
df = df[['name']]
  • 方案3:优先级取值法(适合行内可能有多个非空值,需要指定取值优先级的场景)
    如果你需要按照name1>name2>name3的优先级取有效值,可使用combine_first链式调用:
df['name'] = df['name1'].combine_first(df['name2']).combine_first(df['name3'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:36:04