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

如何在pandas中填充指定列aStart与aEnd区间内的空值

Pandas区间标记空值填充处理方案

实现代码

首先导入依赖库:

import pandas as pd
import numpy as np

构造测试用DataFrame:

df = pd.DataFrame({
    'x': range(1, 14),
    'y': ['b', np.nan, 'aStart', 'aStart', np.nan, np.nan, np.nan, np.nan, 'aEnd', 'c', 'aStart', np.nan, 'aEnd']
})

核心处理逻辑:

# 标记当前行是否处于aStart和aEnd的中间区间
in_interval = (df['y'].eq('aStart').cumsum() - df['y'].eq('aEnd').shift(fill_value=0).cumsum()) > 0

# 仅将区间内的空值填充为'a'
df.loc[in_interval & df['y'].isna(), 'y'] = 'a'

# 替换原有aStart、aEnd标记为NaN
df.loc[df['y'].isin(['aStart', 'aEnd']), 'y'] = np.nan

补充问题说明

上述逻辑天然支持保留b、c等其他无关值:填充操作仅作用于处于区间内且为NaN的行,其他非空值不管是否在区间内都不会被修改,原有处理逻辑完全不需要调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:06:02