切片顺序时间序列pandas数据帧的最佳方法是什么

时间:2018-02-02 07:16:22

标签: python-3.x pandas

我有一个大约100k行的时间序列pandas数据帧以及相关的任务,必须按顺序进行分析。提取每个连续任务的索引的最佳方法是什么。附上了以下数据的样本格式。 预期的一系列任务及其索引号(开始,结束):放松(1,2) - >暂停(3,4) - >放松(5) - >抓握(6,8) - >暂停( 9,10) - >夹(11,12)

基于任务过滤器切片数据会产生非常扭曲的输出 这不是有意的 relax-> pause->手柄 - >捏

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为您需要为唯一的连续task创建辅助列,然后使用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
相关问题