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

如何将未知列数的Pandas DataFrame非空行合并为单列

解决Pandas DataFrame多列非空值合并为单列的方法

最简实现代码

针对你生成的comb_df,一行代码就能完成需求:

result_df = comb_df.stack().reset_index(drop=True).to_frame(name='0')

代码逻辑说明

  • stack():把DataFrame的列维度转为行维度,自动过滤所有null值,将所有非空元素按原有顺序堆叠成一个Series
  • reset_index(drop=True):移除堆叠后生成的多级索引,只保留纯值序列
  • to_frame(name='0'):将Series转为单列DataFrame,指定列名为0,和你期望的结果格式完全匹配

备选实现方式

如果更习惯用melt方法,也可以这样写:

result_df = comb_df.melt(value_name='0')['0'].dropna().reset_index(drop=True).to_frame()
  • melt():把所有列的内容汇聚到一列中(列名设为0)
  • dropna():过滤掉所有空值
  • 后续的reset_index和to_frame作用和第一种方法一致

效果验证

用你提供的示例DataFrame测试,两种方法都会自动跳过全空行和单个空值,只保留非空的列表元素,输出完全符合你期望的单列结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:59:57