在Python中计算数据帧中最后一行和所有其他行之间的时差
我有一堆数据帧都是这样的在Python中计算数据帧中最后一行和所有其他行之间的时差,python,pandas,loops,datetime,timedelta,Python,Pandas,Loops,Datetime,Timedelta,我有一堆数据帧都是这样的 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
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已经是datetime变量
谢谢您可以减去最后一行并取绝对值:
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