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

如何生成标记列:识别列中5个索引范围内重复的1

需求实现:根据相邻索引范围内的1生成标记列

需求说明

现有列Column1,需生成列Col2,规则如下:

  • 若Column1对应位置值为0,Col2直接标记为0;
  • 若Column1对应位置值为1,检查其前后5个索引范围内(即索引差≤5)是否存在其他1:
    • 存在则Col2标记为1;
    • 不存在则Col2标记为0。

示例数据与结果

索引Column1Col2说明
000Column1为0,直接标0
100Column1为0,直接标0
210前后5个索引内无其他1
300Column1为0,直接标0
400Column1为0,直接标0
511与索引2的1差为3(≤5),存在相邻1
600Column1为0,直接标0
700Column1为0,直接标0
800Column1为0,直接标0
900Column1为0,直接标0
1000Column1为0,直接标0
1110与最近的索引5的1差为6(>5),无相邻1

解决方案

1. Python Pandas 实现

方法1:遍历索引判断(直观易懂)

import pandas as pd

# 构造示例数据
df = pd.DataFrame({'Column1': [0,0,1,0,0,1,0,0,0,0,0,1]})

# 获取所有值为1的索引列表
ones_indices = df[df['Column1'] == 1].index.tolist()

# 定义判断函数
def check_nearby(idx):
    if df.loc[idx, 'Column1'] != 1:
        return 0
    # 检查除自身外的1是否在±5索引范围内
    for other_idx in ones_indices:
        if idx != other_idx and abs(idx - other_idx) <= 5:
            return 1
    return 0

# 生成Col2列
df['Col2'] = df.index.map(check_nearby)

# 输出结果
print(df)

方法2:滑动窗口求和(高效简洁)

利用滑动窗口统计范围内1的总数,减去自身后判断是否有其他1:

import pandas as pd

df = pd.DataFrame({'Column1': [0,0,1,0,0,1,0,0,0,0,0,1]})

# 滑动窗口大小为11(当前位置+前后各5个),center=True表示窗口以当前索引为中心
window_sum = df['Column1'].rolling(window=11, center=True, min_periods=1).sum()

# 若窗口内1的总数减去自身后大于0,说明存在其他1
df['Col2'] = ((window_sum - df['Column1']) > 0) & (df['Column1'] == 1)
df['Col2'] = df['Col2'].astype(int)

print(df)

2. SQL 实现

假设数据表名为your_table,包含主键id(作为索引)和Column1列:

SELECT 
    t1.Column1,
    CASE 
        WHEN t1.Column1 = 1 AND EXISTS (
            SELECT 1 
            FROM your_table t2 
            WHERE t2.Column1 = 1 
              AND ABS(t1.id - t2.id) <= 5 
              AND t1.id != t2.id
        ) THEN 1
        ELSE 0
    END AS Col2
FROM your_table t1;

3. Excel 实现

假设Column1在A列(A1到A12),在B1单元格输入公式后下拉填充:

=IF(A1=1, IF(COUNTIFS(A$1:A$12,1, ROW(A$1:A$12), ">="&ROW(A1)-5, ROW(A$1:A$12), "<="&ROW(A1)+5, ROW(A$1:A$12), "<>"&ROW(A1))>0,1,0),0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:06:36