【问题标题】:Counting consecutive events on pandas dataframe by their index通过索引计算 pandas 数据帧上的连续事件
【发布时间】:2014-01-22 01:55:04
【问题描述】:

我正在尝试使用数据框来选择事件。假设我只有两种事件:1、-1 和以下数据框:

a=pd.DataFrame({'ev':[1,1,-1,1,1,1,-1,-1]})

与:

a[a['ev']>0]

我只能选择 1 个事件。现在我想计算我有多少连续事件;在这种情况下,我想得到[2,3]

重点是:如何获取a[a['ev']>0]所涉及的索引列表(或系列)?

【问题讨论】:

    标签: python indexing pandas


    【解决方案1】:

    添加.index 以返回索引列表

    In [43]: a=pd.DataFrame({'ev':[1,1,-1,1,1,1,-1,-1]})
    
    In [44]: b = list(a[a['ev']>0].index)
    
    In [45]: b
    Out[45]: [0, 1, 3, 4, 5]
    

    【讨论】:

    • 您的结果 [0, 1, 3, 4, 5] 不是所寻求的结果 - [2, 3]
    • 寻求的结果没有任何意义..鉴于他的条件,位置2和3分别对应于-1和1,因此他的结果不满足条件......我正在向他展示如何根据条件获取索引列表,他可以根据自己的意愿编辑条件
    • 鉴于标题,此答案具有误导性。它依赖于值只有 -1, 1 的事实(我看到的是问题)。此答案需要更改以匹配标题,或者标题需要更改为连续的 1 或 -1。
    • 问题的最后一行是:重点是:如何获取a[a['ev']>0]中涉及的索引的列表(或系列)? - 答案是这样的。 @cgnorthcutt
    • @scott - 标题显示事件,但它应该显示“-1”和“1”,因为这里的解决方案不适用于其他类型的事件,例如 3 和 4。标题比内容更宽泛。
    猜你喜欢
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多