![](/img/trans.png)
[英]Pandas: Calculate the difference between all rows and a specific row in the 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.