当前位置: 首页 > 知识库问答 >
问题:

python根据eventType和eventId创建groupby,并获取每个eventType之间的日期差异

公孙黎昕
2023-03-14

我的数据格式如下:

    id  eventSource        eventType                           timestamp
0  102    sensor1          received                   2021-10-06 13:45:51
1  102    sensor1          startingCalculation        2021-10-06 13:45:55
2  102    sensor1          endedCalculation           2021-10-06 13:46:00
3  103    sensor2          received                   2021-10-06 13:46:00
4  103    sensor2          startingCalculation        2021-10-06 13:46:04
5  103    sensor2          endedCalculation           2021-10-06 13:46:10

我需要以下任务的帮助:

我想按Id eventSource和eventType进行分组,并显示每个Id eventSource和eventType的接收的endedCalculation事件之间的差异,如下所示:

    id   eventSource         diff 
0  102      sensor1           9
0  103      sensor2           10

等等...

我被困在了群居舞台上,

谢谢你的帮助

共有1个答案

苏鸿志
2023-03-14

尝试:

m=df['eventType'].isin(['received','endedCalculation'])
#created a boolean mask

最后传递该掩码并使用groupby()agg()方法:

out=df[m]
out['diff']=out.groupby(['id','eventSource'])['timestamp'].diff().dt.total_seconds()
out=out.dropna(subset=['diff']).drop('eventType',1).reset_index(drop=True)

输出的输出

    id  eventSource     timestamp               diff
0   102     sensor1     2021-10-06 13:46:00     9.0
1   103     sensor2     2021-10-06 13:46:10     10.0
 类似资料:
  • 问题内容: 我知道我可以使用momentjs做任何事情,还可以做一些涉及日期的事情。但是令人尴尬的是,我很难去做一件看起来很简单的事情:得到两次之间的差。 例: 我试过的 我不知道那里的“ 10”是什么。我住在巴西,所以如果相关的话,我们是utc-0300。 结果是持续时间正确的内部值: 所以,我想我的问题是:如何将momentjs持续时间转换为时间间隔?我肯定可以用 但我觉得有一些更 优雅 ,我

  • 问题内容: 我有两个这样的表: 表格1 表2 我想从 Table1中 选择并插入 Table2中 。 例如: 在表1中,我有这个 在表2中,我想要这个 带有样本数据的表结构 问题答案: 感谢您的架构。它使处理您的问题变得容易。我对您的架构进行了一些更改以利用auto_increment 在这里,我在emp_leave_daywise表上添加了唯一约束,因为id整数上的主键不能确保记录不重复。 em

  • 我正在设置闹钟的日历日期。闹钟时间设置了小时、分钟、格式和日期。我还想抓住现在的时间,比较两者之间的差异。所以,如果闹钟时间设置为周三,现在时间是周四,我想知道周四到周三之间有多少天。我还需要时间和分钟。 我尝试过每一个例子,但似乎都不管用。 JAVA方法 我确实尝试过这个。 这只是不太正确。它说是2天,所以我假设它是从闹钟日(星期二)到星期四(今天)。我需要的是从今天(星期四)到星期二。从现在起

  • 本文向大家介绍如何获取iOS中两个日期之间的差异?,包括了如何获取iOS中两个日期之间的差异?的使用技巧和注意事项,需要的朋友参考一下 获得两个日期之间的差异很容易。您应该知道如何在两个日期之间玩。 我们将使用DateFormatter类格式化日期。 DateFormatter的实例创建 NSDate对象的字符串表示形式,并将日期和时间的文本表示形式转换为 NSDate对象。 你可以在这里读更多关

  • 问题内容: 我可以使用MomentJs获得两个日期之间的差异,如下所示: 但是,我也想在适用时显示小时(仅当> = 60分钟过去时)。 但是,当我尝试使用以下方法检索工时时数: 它返回的是当前时间,而不是两个日期之间的小时数。 如何获得两个时刻之间的小时数差异? 问题答案: 你近了您只需要使用该方法请参阅docs。

  • 返回两个日期之间相差的天数。 计算 Date 对象之间的差异(以天为单位)。 const getDaysDiffBetweenDates = (dateInitial, dateFinal) => (dateFinal - dateInitial) / (1000 * 3600 * 24); getDaysDiffBetweenDates(new Date('2017-12-13'), ne