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

如何在Pandas中删除decline行及其后续的constant行

Pandas数据筛选:保留increase及后续constant,删除decline及后续constant

问题背景

给定以下Pandas DataFrame:

import pandas as pd
df = pd.DataFrame({"changes":['increase', 'constant', 'constant', 'constant', 'decline', 'constant', 'constant', 'increase', 'constant', 'constant', 'constant','decline', 'constant', 'constant', 'constant']})

原始数据表格:

changes
increase
constant
constant
constant
decline
constant
constant
increase
constant
constant
constant
decline
constant
constant
constant

需求:删除所有包含decline的行及其之后连续的constant行,同时保留包含increase的行及其之后连续的constant行,预期输出如下:

changes
increase
constant
constant
constant
increase
constant
constant
constant

解决方法

核心思路是通过分组标记,把increase或decline作为分组起点,过滤掉以decline开头的分组:

# 生成分组标识:遇到increase或decline时,分组序号递增
df['group'] = (df['changes'].isin(['increase', 'decline'])).cumsum()

# 获取每个分组的首个元素,筛选出非decline开头的分组
valid_groups = df.groupby('group')['changes'].first()[lambda x: x != 'decline'].index

# 筛选保留的行并删除临时分组列
result_df = df[df['group'].isin(valid_groups)].drop(columns='group')

# 查看结果
print(result_df)

结果验证

运行上述代码后,输出结果与预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:57:40