从数据框中两两减去行

Subtract rows from a dataframe two by two

我有一个包含两列的数据框:事件和日期。

    created_at           event
0   2020-11-16 13:41:34  meeting-created
1   2020-11-16 13:49:52  meeting-ended
2   2020-11-16 14:01:36  meeting-created
3   2020-11-16 15:16:24  meeting-ended

我想计算会议的总持续时间,因此我需要减去前两个日期,然后减去后两个日期。知道数据框中可能有更多行。

我相信你需要如果总是有对减法过滤值与转换秒 Series 到 numpy 数组:

df['created_at'] = pd.to_datetime(df['created_at'])

s1 = df.loc[df['event'].eq('meeting-ended'), 'created_at']
s2 = df.loc[df['event'].eq('meeting-created'), 'created_at']

df['new'] = s1.sub(s2.to_numpy())
print (df)
           created_at            event             new
0 2020-11-16 13:41:34  meeting-created             NaT
1 2020-11-16 13:49:52    meeting-ended 0 days 00:08:18
2 2020-11-16 14:01:36  meeting-created             NaT
3 2020-11-16 15:16:24    meeting-ended 0 days 01:14:48