【问题标题】:What is the best way to slice sequential time series pandas dataframe切片顺序时间序列熊猫数据帧的最佳方法是什么
【发布时间】:2018-07-12 15:37:57
【问题描述】:

我有一个约 100k 行的时间序列 pandas 数据框,其中包含相关任务,必须对其进行顺序分析。提取每个连续任务的索引的最佳方法是什么。附上以下数据的示例格式。 带有索引号的预期任务系列(开始,结束):relax(1,2)->pause(3,4)->relax(5)->grip(6,8)->pause(9,10) ->捏(11,12)

基于任务过滤器对数据进行切片会产生非常失真的输出 这不是有意的 这有点像这样 放松->暂停->抓握->捏合

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    我认为您需要为唯一连续的tasks 创建帮助列,然后通过duplicatedboolean indexing 过滤:

    df['g'] = df['task'].ne(df['task'].shift()).cumsum()
    df = df[~df.duplicated(['task','g']) | ~df.duplicated(['task','g'], keep='last')]
    print (df)
                               Timestamp   task loc  age  g
    1   2017-11-10 03:41:22.003809+00:00  relax  NY   32  1
    2   2017-11-10 03:41:22.004809+00:00  relax  HI   26  1
    3   2017-11-10 03:41:22.005809+00:00  pause  FL   25  2
    4   2017-11-10 03:41:22.006809+00:00  pause  NY   32  2
    5   2017-11-10 03:41:22.007809+00:00  relax  HI   26  3
    6   2017-11-10 03:41:22.008809+00:00   grip  FL   25  4
    8   2017-11-10 03:41:22.010809+00:00   grip  HI   26  4
    9   2017-11-10 03:41:22.011809+00:00  pause  FL   25  5
    10  2017-11-10 03:41:22.012809+00:00  pause  NY   32  5
    11  2017-11-10 03:41:22.013809+00:00  pinch  HI   26  6
    12  2017-11-10 03:41:22.014809+00:00  pinch  FL   25  6
    

    【讨论】:

    • 哇,谢谢你的建议。解决了我的问题。对上述代码步骤的一些解释表示赞赏。
    • 不客气!如果可能的话,您也可以对我的解决方案进行投票,谢谢。
    猜你喜欢
    • 2020-02-18
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    相关资源
    最近更新 更多