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

如何移动Pandas DataFrame中的列及对应数据?含多列移动需求

解决方案

要实现将指定列移到前几列下方并保留空行的需求,你可以通过拆分DataFrame、添加空行后重新拼接的方式完成,这完全支持大规模数据(比如你提到的前2列+7列移动的场景)。

示例代码(针对你的小DataFrame)

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['1.1', '1.2','1.3'],
    'C': [4.1, 5.2, 6.3]
})

# 1. 提取前2列数据
top_section = df[['A', 'B']].copy()

# 2. 创建一行空行(列名与原DataFrame保持一致)
empty_row = pd.DataFrame([[None]*len(df.columns)], columns=df.columns)

# 3. 提取需要移动的列(这里是C列)
bottom_section = df[['C']].copy()

# 4. 拼接所有部分
result_df = pd.concat([top_section, empty_row, bottom_section], ignore_index=True)

print(result_df)

输出结果:

A    B    C
0  1.0  1.1  NaN
1  2.0  1.2  NaN
2  3.0  1.3  NaN
3  NaN  NaN  NaN
4  NaN  NaN  4.1
5  NaN  NaN  5.2
6  NaN  NaN  6.3

扩展到大规模数据(前2列+7列移动)

如果你的DataFrame有更多列,只需调整列的选取逻辑即可,无需修改核心逻辑:

# 定义前几列的数量(这里是2)
top_col_count = 2
# 获取需要移动的所有列(从第3列开始到最后)
cols_to_move = df.columns[top_col_count:]

# 提取前2列
top_section = df[df.columns[:top_col_count]].copy()
# 创建空行
empty_row = pd.DataFrame([[None]*len(df.columns)], columns=df.columns)
# 提取要移动的7列
bottom_section = df[cols_to_move].copy()

# 拼接得到最终结果
final_df = pd.concat([top_section, empty_row, bottom_section], ignore_index=True)

额外说明

  • 若需要多段空行,只需重复空行即可,比如用pd.concat([empty_row]*3)添加3行空行。
  • concat时的ignore_index=True是为了重置拼接后的行索引,避免索引重复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:22:20