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

如何基于指定规则填充pandas DataFrame的exit_value列

给你一个用pandas内置函数实现的方案,不用手动遍历索引,代码如下:

import pandas as pd

# 先把空字符串替换成缺失值方便后续处理
df['exit_value'] = df['exit_value'].replace('', pd.NA)

# 生成分组标记:每遇到一个type为S的行,分组计数加1,将每个S对应后续的行分到同一组
df['temp_group'] = df['type'].eq('S').cumsum()

# 按分组处理:每个组内向前填充缺失值,仅填充到组内第一个L对应的行位置
df['exit_value'] = df.groupby('temp_group', group_keys=False).apply(
    lambda group: group['exit_value'].ffill().where(
        group.index <= group[group['type'] == 'L'].index.min(), 
        group['exit_value']
    )
)

# 删除临时生成的分组列
df = df.drop('temp_group', axis=1)

运行后输出的结果和你需要的完全一致。
思路说明:

  • 核心逻辑是把每个S和它后续直到下一个S之前的行归为同一组,保证每个组内只有一个用来填充的S值
  • 分组后对每个组单独处理:先向前填充缺失值,同时限制填充范围只到组内第一个L的位置,超过L的行保留原来的空值
  • 如果你需要的话可以自行调整exit_value的输出数据类型,比如转成整数或者字符串格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:30:02