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

已知DataFrame指定索引,如何获取上一行的对应数据

Pandas获取指定索引对应元素的上一个值的实现方法

要获取索引2021-11-26的上一个元素,有两种常用的稳定实现方式:

方法1:索引位置偏移法(通用所有场景)

先通过get_loc拿到指定索引的位置,位置减1后用iloc取值即可:

import pandas as pd
df1 = pd.DataFrame({'A':[10,20,30]}, index=['2021-11-24','2021-11-25','2021-11-26'])
current_idx = '2021-11-26'
# 获取当前索引的整数位置
current_pos = df1.index.get_loc(current_idx)
# 偏移-1取上一个元素
prev_val = df1['A'].iloc[current_pos - 1]
print(prev_val) # 输出结果:20

注意:使用前需判断current_pos > 0,避免当前索引是首行时出现下标越界报错;如果存在重复索引,get_loc会返回布尔数组,需要先筛选出目标位置再做偏移。

方法2:shift偏移法(适合时间序列/无需额外处理越界的场景)

将目标列整体向下偏移1行,此时原索引对应的值就是上一行的元素:

prev_val = df1['A'].shift(1).loc['2021-11-26']
print(prev_val) # 输出结果:20

如果当前索引是首行,该方法会直接返回NaN,不会触发报错,适合批量处理多索引取值的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:24:04