【问题标题】:pandas - time difference between last events of different groups [duplicate]pandas - 不同组的最后一个事件之间的时间差[重复]
【发布时间】:2019-10-06 09:22:39
【问题描述】:

我有一个消息数据框,它们的发送者和时间。它看起来像这样:

Time           Person    Message
8:00           A         '1'
8:01           B         '2'
8:02           B         '3'
8:05           A         '4'
9:04           B         '5'

我想计算一个人回复对方的最后一条消息需要多长时间。即得到以下内容:

Time           Person    Message     TimeDiff(in min)
8:00           A         '1'         0
8:01           B         '2'         1
8:02           B         '3'         2
8:05           A         '4'         3
9:04           B         '5'         59

我怎样才能达到这个目标?

编辑: 请注意,这不是与 Time col 中最后一个元素的简单差异,因为它以 Person 列为条件。见例子。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以使用日期时间序列来计算差异。

    首先使用pd.to_datetime获取serie:

    date_time_serie=pd.to_datetime(df['Time'] ,format = '%H:%M')
    

    然后使用diffdt.second 计算差异:

    df['TimeDiff(in min)']=date_time_serie.diff().fillna(pd.Timedelta(0)).dt.seconds/60
    df['TimeDiff(in min)']=df['TimeDiff(in min)'].astype(int)
    print(df)
    

       Time Person Message  TimeDiff(in min)
    0  8:00      A     '1'                 0
    1  8:01      B     '2'                 1
    2  8:02      B     '3'                 1
    3  8:05      A     '4'                 3
    4  9:04      B     '5'                59
    

    【讨论】:

      猜你喜欢
      • 2018-10-14
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      相关资源
      最近更新 更多