从数据框中两两减去行
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
我有一个包含两列的数据框:事件和日期。
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