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

求助:用Python循环实现Pandas DataFrame列值复制至下一行

将DataFrame列值复制到下一行的实现方法

优先推荐:用Pandas内置方法(高效简洁)

如果不需要强制用循环,更推荐用Pandas内置的shift()方法,比手动循环效率高得多:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({'目标列': [10, 20, 30, 40, 50]})

# 实现下一行等于上一行的值,第一行保留原内容
df['目标列'] = df['目标列'].shift(1).fillna(df['目标列'].iloc[0])

print(df)

输出结果:

目标列
0    10
1    10
2    20
3    30
4    40

如果你一定要用for循环实现

之前循环失败大概率是因为没正确使用Pandas的索引定位(比如链式索引导致修改失效),下面是可用的循环写法:

import pandas as pd

df = pd.DataFrame({'目标列': [10, 20, 30, 40, 50]})

# 遍历从第0行到倒数第二行,把当前行的值赋值给下一行
for i in range(len(df) - 1):
    # 用loc精准定位单元格,确保修改作用在原DataFrame上
    df.loc[i+1, '目标列'] = df.loc[i, '目标列']

print(df)

这段代码会得到和内置方法完全一致的结果,核心是用df[row, col]的定位方式,避免修改视图而非原数据的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:37:36