簡體   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