繁体   English   中英

计算 Python 中 dataframe 中最后一行与所有其他行之间的时间差

[英]Calculate time difference between last row and all other rows in a dataframe in Python

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

   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

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

   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 已经是一个日期时间变量。

谢谢

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM