groupby函数获取后续值

时间:2012-12-28 21:11:54

标签: group-by pandas

在我的数据中,我有订单序列和时间的库存量,我需要查看订单的每个部分,并通过抓住下一部分链时间来查找订单的结束时间。

我刚刚开始使用python,我会通过将每个库存子集化到自己的池中,然后添加然后执行另一个循环来查找该序列的下一个订单的时间来完成此操作。最后,在R / Matlab中你可以去X $ time [1:end-1]< - X $ time [2:end,]

我的问题是,我可以使用df.groupby ['sequence']。{为每个条目从后续条目中获取时间} ???

我认为last()会给我整个序列的最后一个值,我希望下一个序列开始/出现的时间

我有一套类型:

sequence time
a        1
b        1
a        3
a        5
b        2

我想

sequence time  nexttime
a        1       3
b        1       2
a        3       5
a        5       999
b        2       999

1 个答案:

答案 0 :(得分:4)

In [24]: df
Out[24]: 
  sequence  time
0        a     1
1        b     1
2        a     3
3        a     5
4        b     2

In [25]: df['nexttime'] = df.groupby('sequence').time.shift(-1).fillna(999)

In [26]: df
Out[26]: 
  sequence  time  nexttime
0        a     1         3
1        b     1         2
2        a     3         5
3        a     5       999
4        b     2       999