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

如何在Pandas中将指定索引范围的数据移动到另一目标区域

Pandas实现指定单元格区域移动的方法

核心操作逻辑如下:

  • 选中源区域的数值,赋值给同等大小的目标区域,赋值时加.values取底层数组,避免Pandas自动索引对齐导致赋值异常
  • 清空源区域的内容,即可完成类Excel的区域移动效果

示例代码实现

先构造你给出的示例数据表:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    data=[
        ['apple', 'pear', 'banana'],
        [np.nan, np.nan, np.nan],
        [np.nan, np.nan, np.nan],
        [np.nan, np.nan, np.nan]
    ],
    columns=['A', 'B', 'C']
)

执行移动操作(将行0列B:C移动到行3列A:B):

# 用iloc按位置索引选中区域
# 赋值源区域值到目标区域
df.iloc[3:4, 0:2] = df.iloc[0:1, 1:3].values
# 清空源区域
df.iloc[0:1, 1:3] = np.nan

执行后输出的df就是你需要的效果:

A       B       C
0  apple     NaN     NaN
1    NaN     NaN     NaN
2    NaN     NaN     NaN
3   pear  banana     NaN

通用场景适配

如果你的DataFrame使用自定义标签索引,用loc按标签选中区域即可:

# 源区域:行标签A1到B1,列标签N1到M1
# 目标区域:行标签A2到B2,列标签N2到M2
df.loc[A2:B2, N2:M2] = df.loc[A1:B1, N1:M1].values
df.loc[A1:B1, N1:M1] = np.nan

注意事项

  • 源区域和目标区域的行列数量必须完全一致,否则会触发维度不匹配报错
  • 如果你需要用空字符串代替NaN作为清空值,把代码中的np.nan替换为''即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:24:08