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

Pandas新手求助:如何将第1、5、9列垂直合并至同一列?

解决Pandas单列垂直合并问题

你的核心需求是把原数据框的第1、5、9列(对应Pandas的0、4、8索引列)合并成同一列,之前的代码思路完全偏了——你切了多列的块再堆叠,还误用了横向填充的ffill(axis=1),自然达不到效果。

正确实现方式

直接提取目标单列,再用pd.concat垂直堆叠即可:

# 提取目标列:第1、5、9列(Pandas索引从0开始,对应0、4、8)
target_cols = [df.iloc[:, 0], df.iloc[:, 4], df.iloc[:, 8]]
# 垂直合并成一列,重置索引避免重复
merged_col = pd.concat(target_cols, axis=0).reset_index(drop=True)
# 转成DataFrame(如果需要)
new_df = merged_col.to_frame(name='合并后的列')

为什么你的代码不行?

  • 你之前的columns_1_to_4 = df.iloc[0:9, 0:4]是提取了前9行的前4列,不是单列,三个这样的块堆叠后是一个多行多列的DataFrame,不是你要的单列结构。
  • ffill(axis=1)是横向填充空值(从左到右补),和垂直合并列的需求完全无关,只会把每行的空值用左边的数值填充,根本不会帮你把列合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:35:55