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

如何将Pandas DataFrame多列值纵向拼接并去除NaN值

实现方案

两种写法都可以得到你要的结果,取值顺序均为先列a的非空值、后列b的非空值,和需求一致:

方法1:用stack()实现(代码最简洁)

stack()纵向展开多列数据时会默认自动丢弃NaN值,不需要额外做空值处理:

# 已有df的话直接运行这行即可得到结果
result = pd.DataFrame({'c': df[['a', 'b']].stack().reset_index(drop=True)})

方法2:显式拼接后去空(逻辑更易读)

手动按顺序拼接两列数据,再删除空值重置索引,逻辑更直白:

result = pd.DataFrame({
    'c': pd.concat([df['a'], df['b']], ignore_index=True).dropna()
}).reset_index(drop=True)

输出验证

运行上述任意一段代码,得到的结果如下,完全匹配预期:

c
10
20
30
4
5
6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:45:18