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

如何将DataFrame中特定位置起的所有值向右偏移?

解决方案

首先构建原始DataFrame:

import pandas as pd

data = {
    'A': [0.1, 1.1, 2.1, 3.1, 4.1, 5.1],
    'B': [0.2, 1.2, 2.2, 3.2, 4.2, 5.2],
    'C': [0.3, 1.3, 2.4, 3.4, 4.4, 5.3],
    'D': [0.4, 1.4, 2.5, 3.5, 4.5, 5.4],
    'E': [0.5, 1.5, 2.6, 3.6, 4.6, 5.5]
}
df = pd.DataFrame(data)

针对特定行和列执行右移操作:

# 定义需要处理的行索引和列名
target_rows = [2, 3, 4]
target_cols = ['C', 'D', 'E']

# 将目标行的C→D、D→E赋值,实现右移
df.loc[target_rows, target_cols[1:]] = df.loc[target_rows, target_cols[:-1]].values
# 清空目标行的C列
df.loc[target_rows, target_cols[0]] = None

执行后输出的DataFrame即为期望结果:

A    B    C    D    E
0  0.1  0.2  0.3  0.4  0.5
1  1.1  1.2  1.3  1.4  1.5
2  2.1  2.2  NaN  2.4  2.5
3  3.1  3.2  NaN  3.4  3.5
4  4.1  4.2  NaN  4.4  4.5
5  5.1  5.2  5.3  5.4  5.5

说明

  • 通过loc精准定位需要操作的行和列,避免影响其他数据
  • 利用列切片实现值的右移传递,最后将起始列置空完成需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:31:19