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

如何在不修改DataFrame首列的情况下实现列移位操作?

问题整理

原始DataFrame:

ABC
Firstrow to deleterow to shift
Secondrow to deleterow to shift

想要的结果:

ABC
Firstrow to shift
Secondrow to shift

试过df.shift(-1, axis=1),但会把A列也左移,得到的不符合预期的结果:

ABC
row to deleterow to shift
row to deleterow to shift

需求:保留A列完全不变,后面的列左移一位,最后一列清空。

解决办法

方法1:直接赋值(列数少的时候最省事)

需求明确的话,直接硬写赋值逻辑就行:

# 把C列的内容挪到B列
df['B'] = df['C']
# 清空C列
df['C'] = ''

方法2:批量处理多列(列多的时候用)

如果后续有N多列(比如B、C、D、E...),不想挨个赋值,就单独拎出A列,剩下的列做shift再合并:

import pandas as pd

# 先把A列单独拿出来
col_a = df['A'].copy()
# 对A以外的所有列执行左移一位
shifted_rest = df.drop('A', axis=1).shift(-1, axis=1)
# 把A列和处理后的列拼回去
df = pd.concat([col_a, shifted_rest], axis=1)
# 把默认的NaN换成空字符串(按需选择)
df = df.fillna('')

这样两种方式都能精准保住A列,同时实现你要的移位效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:46:13