【问题标题】:How to calculate the ID time difference [duplicate]如何计算ID时差[重复]
【发布时间】:2021-12-01 13:47:53
【问题描述】:

我要计算ID时差,例如ID 0 TimeStamp 1176 - ID 0 TimeStamp 1163 = 13,ID 0 TimeStamp 1190 - ID 0 TimeStamp 1176 = 14 ,怎么办?

预计

     TimeStamp  Input ID   diff   
0         1163  T      0    NaN 
1         1163  T      1    NaN  
2         1163  T      2    NaN   
3         1163  T      3    NaN    
4         1176  T      0     13  
5         1176  T      1     13  
6         1176  T      2     13  
7         1176  T      3     13  
8         1190  T      0     14
9         1190  T      1     14 
10        1190  T      2     14 

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    假设您的数据框看起来像

        TimeStamp Input  ID
    0        1163     T   0
    1        1163     T   1
    2        1163     T   2
    3        1163     T   3
    4        1176     T   0
    5        1176     T   1
    6        1176     T   2
    7        1176     T   3
    8        1190     T   0
    9        1190     T   1
    10       1190     T   2
    

    您可以按 ID 分组并在每个组上使用 pd.diff() 并将其添加回结果中。

    df["diff"] = df.groupby("ID")["TimeStamp"].diff()
    
        TimeStamp Input  ID  diff
    0        1163     T   0   NaN
    1        1163     T   1   NaN
    2        1163     T   2   NaN
    3        1163     T   3   NaN
    4        1176     T   0  13.0
    5        1176     T   1  13.0
    6        1176     T   2  13.0
    7        1176     T   3  13.0
    8        1190     T   0  14.0
    9        1190     T   1  14.0
    10       1190     T   2  14.0
    

    注意:数据框的排序顺序很重要。必须按TimeStamp 升序排列。如果需要,可以先使用df.sort_values("TimeStamp", inplace=True)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 2014-07-16
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      相关资源
      最近更新 更多