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

如何移除Pandas Series末尾的连续零行?

Pandas移除Series末尾连续零的解决方案

问题场景

给定如下Pandas Series:

import pandas as pd
s = pd.Series([1, 0, 1, 0, 2, 0, 0, 0])

需要移除末尾所有连续的零,得到结果:

pd.Series([1, 0, 1, 0, 2])

使用s.loc[s != s.shift()]无法完全移除末尾的零串(会保留最后一串零的第一个元素),手动删除不具备通用性,因此需要更优方案。

解决方案

方法一:定位最后一个非零元素切片

直接找到Series中最后一个非零元素的索引,切片到该位置即可:

# 获取最后一个非零元素的索引
last_non_zero_idx = s[s != 0].index[-1]
# 切片得到结果
result = s.loc[:last_non_zero_idx]

逻辑直观,代码简洁,适配大多数常规场景。

方法二:反向累积掩码过滤

通过反向遍历生成掩码,筛选出需要保留的部分,适合索引非连续或自定义索引的Series:

# 反向生成非零累积掩码,反转后得到保留范围
keep_mask = s.iloc[::-1].ne(0).cumsum().gt(0)
result = s.loc[keep_mask.iloc[::-1]]

验证结果

两种方法执行后,输出结果均为:

0    1
1    0
2    1
3    0
4    2
dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 15:50:16