List非0连续片段的索引

本文介绍了一种利用Python中的Pandas库处理包含零值的序列数据的方法,通过对零值进行分组并去除零值来实现对有效数据的快速定位与处理。此方法适用于信号处理等场景中对连续有效数据段的提取。
import pandas as pd
import numpy as np

l = [0, 11, 23, 33, 0, 0, 0, 76, 0, 41, 68]
df = pd.DataFrame({'A': l})
df['block'] = (df['A'] == 0).astype(int).cumsum()  # 对等于0的进行累加计算。
df = df.reset_index()
df = df[df.A != 0]  # 删除掉为0 的 元素
print(l)
print df.groupby(['block'])['index'].apply(np.array).tolist()
    

结果:

    [0, 11, 23, 33, 0, 0, 0, 76, 0, 41, 68]
    [array([1, 2, 3]), array([7]), array([ 9, 10])]

转载于:https://www.cnblogs.com/baishoujing/p/8757628.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值