【问题标题】:Calculate time difference between last row and all other rows in a dataframe in Python在Python中计算数据框中最后一行和所有其他行之间的时间差
【发布时间】:2021-07-17 01:33:12
【问题描述】:

我有一堆看起来像这样的数据框

   DATE        A     B    
2021-01-01     1     2   
2021-01-05     1     2
2021-01-06     1     2
2021-01-10     1     2
2021-01-20     1     2

我想计算所有行与最后一行之间的时间差。这意味着我想创建另一列,其中包含该行与数据框中最后一行之间的时间差。所以它应该是这样的:

   DATE        A     B     timediff  
2021-01-01     1     2     19 days
2021-01-05     1     2     14 days
2021-01-06     1     2     13 days
2021-01-10     1     2     9 days
2021-01-20     1     2     0 days

有没有办法做到这一点? Date 已经是一个日期时间变量。

谢谢

【问题讨论】:

    标签: python pandas loops datetime timedelta


    【解决方案1】:

    你可以减去最后一行并取绝对值:

    df['timediff_days'] =df['DATE'].sub(df['DATE'].iloc[-1]).dt.days.abs()
    

    或者:

    df['timediff'] = pd.Timedelta(0,unit='d')-df['DATE'].sub(df['DATE'].iloc[-1])
    
            DATE  A  B timediff
    0 2021-01-01  1  2  19 days
    1 2021-01-05  1  2  15 days
    2 2021-01-06  1  2  14 days
    3 2021-01-10  1  2  10 days
    4 2021-01-20  1  2   0 days
    

    【讨论】:

      猜你喜欢
      • 2019-09-11
      • 2019-11-11
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 2021-11-19
      • 2023-03-19
      • 2019-09-02
      • 2021-01-14
      相关资源
      最近更新 更多