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

Pandas如何获取最后一次满足条件的行索引并赋值给指定列

Pandas 逐行计算最后一次满足条件的行索引实现方案

核心逻辑是利用pandas的条件赋值+向前填充能力,无需写循环逐行遍历,执行性能更高:

  • 第一步:用where方法做条件筛选,满足A > 0.5的行保留当前行索引,不满足的行赋值为NaN
  • 第二步:对筛选得到的序列做向前填充(ffill),自动把上一个非NaN的有效索引填充到后续不满足条件的行,刚好匹配“截至当前行最后一次满足条件的索引”的需求
  • 第三步:把填充后的结果赋值给新列cond_index即可

可直接运行的代码示例

import pandas as pd
import numpy as np

# 构造测试数据集
df = pd.DataFrame({
    'A': [0.001566, 0.174676, 0.553506, 0.583377, 0.418854, 0.836482, 0.927756, 0.800908, 0.277646, 0.388323]
})

# 一行代码完成计算
df['cond_index'] = df.index.where(df['A'] > 0.5, np.nan).ffill()

# 如果需要cond_index为整数格式,可替换为下面这行,用pandas可空整数类型保留NaN
# df['cond_index'] = df.index.where(df['A'] > 0.5, np.nan).ffill().astype('Int64')

运行输出结果

A  cond_index
0  0.001566         NaN
1  0.174676         NaN
2  0.553506         2.0
3  0.583377         3.0
4  0.418854         3.0
5  0.836482         5.0
6  0.927756         6.0
7  0.800908         7.0
8  0.277646         7.0
9  0.388323         7.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:34:13