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

如何从DataFrame筛选末尾连续零数≥3的门店ID列表

解决方法

首先先把你的数据转换成可操作的DataFrame:

import pandas as pd

# 构造对应数据
data = [
    [0,0,1,1],
    [1,0,1,0],
    [0,0,1,0],
    [0,1,0,0],
    [0,1,0,0]
]
df = pd.DataFrame(data, columns=[76, 123, 872, 987])

接下来核心是计算每列末尾连续零的数量,可以写个简单的自定义函数实现:

def count_trailing_zeros(col):
    count = 0
    # 从列的最后一行往前遍历
    for val in reversed(col):
        if val == 0:
            count += 1
        else:
            break  # 遇到非零值就停止统计
    return count

# 对每一列应用这个函数,得到每个门店ID对应的末尾连续零数量
trailing_zero_counts = df.apply(count_trailing_zeros)

最后筛选出符合条件的门店ID:

result = trailing_zero_counts[trailing_zero_counts >= 3].index.tolist()
print(result)  # 输出: [76, 987]

简单说明

  • reversed(col) 会把列的行数据倒序,让我们从最后一行开始检查
  • 只要遇到0就累加计数,碰到第一个非0值就停止,这样得到的就是末尾连续零的数量
  • 用布尔索引筛选出计数≥3的列名(也就是门店ID),转成列表就是你要的结果

内容的提问来源于stack exchange,提问作者Ринат Хафизов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:40:58