根据条件计算数据帧中先前行的数量

时间:2017-09-29 02:23:13

标签: python pandas datetime dataframe

以下是数据框:

    entryTime             exitTime
    2017-05-31 22:47:08   2017-05-31 22:50:29   
    2017-05-31 22:47:38   2017-06-01 00:00:44   
    2017-05-31 23:59:50   2017-06-01 00:01:58
    2017-06-01 00:01:40   2017-06-01 00:02:00
    dtype: datetime64[ns]

我想创建一个新列“位置”,用于计算前一行的数量:

当前行的entryTime<上一行的exitTime

e.g.
    entryTime             exitTime              Position
    2017-05-31 22:47:08   2017-05-31 23:59:59   0
    2017-05-31 22:47:38   2017-06-01 00:00:44   1
    2017-05-31 23:59:50   2017-06-01 00:01:58   2
    2017-06-01 00:01:40   2017-06-01 00:02:00   1
    dtype: datetime64[ns]

我该怎么做?

1 个答案:

答案 0 :(得分:1)

使用shift

df['position'] = (df.entryTime < df.exitTime.shift(1)).astype(int)

df
            entryTime            exitTime  position
0 2017-05-31 22:47:08 2017-05-31 22:50:29         0
1 2017-05-31 22:47:38 2017-06-01 00:00:44         1
2 2017-05-31 23:59:50 2017-06-01 00:01:58         1
相关问题