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

使用Python pandas的shift方法时如何自动追加超出DataFrame末尾的行

pandas 原生的shift方法默认仅在现有索引范围内移动数值,不会自动追加新行,你可以先通过reindex或者concat方法一次性扩展数据行数,再执行计算即可,完全不需要用for循环逐行追加。

实现代码

如果你的DataFrame用的是默认连续整数索引,推荐用reindex方案:

# 取原数据行数
original_len = len(self)
# 直接将索引扩展到原长度+30,新增行默认填充空值
self = self.reindex(range(original_len + 30))
# 执行原有的c列计算逻辑
self['c'] = ((self['a'] + self['b']) / 2).shift(30)

如果你的索引是非默认的自定义格式,可以用concat方案统一追加空行:

import pandas as pd
# 追加30行空数据,ignore_index自动生成连续整数新索引
self = pd.concat([self, pd.DataFrame(index=[*range(30)])], ignore_index=True)
# 执行原有的c列计算逻辑
self['c'] = ((self['a'] + self['b']) / 2).shift(30)

两种方案都能直接得到130行的结果,原有的100行a、b列数据会保留,shift后的计算结果会自动填充到第130行的位置,和你预期的计算逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:15:02