首頁 >後端開發 >Python教學 >如何計算兩個 Pandas 列之間的時間差(僅以小時和分鐘為單位)?

如何計算兩個 Pandas 列之間的時間差(僅以小時和分鐘為單位)?

Susan Sarandon
Susan Sarandon原創
2024-12-01 15:11:09259瀏覽

How to Calculate the Time Difference Between Two Pandas Columns in Hours and Minutes Only?

計算兩個Pandas 欄位之間的時間差(以小時和分鐘為單位)

在資料分析中,經常需要計算兩個日期或時間戳之間的時間差。 Pandas 是 Python 中流行的資料分析函式庫,為此類計算提供了便捷的方法。但是,當時差超過 24 小時時,結果可能會包含天數。本文介紹如何將此結果轉換為僅顯示小時和分鐘。

考慮以下包含兩列(fromdate 和todate)的範例資料框:

import pandas as pd

data = {'todate': [pd.Timestamp('2014-01-24 13:03:12.050000'),
                    pd.Timestamp('2014-01-27 11:57:18.240000'),
                    pd.Timestamp('2014-01-23 10:07:47.660000')],
        'fromdate': [pd.Timestamp('2014-01-26 23:41:21.870000'),
                    pd.Timestamp('2014-01-27 15:38:22.540000'),
                    pd.Timestamp('2014-01-23 18:50:41.420000')]}

df = pd.DataFrame(data)

計算兩者之間的差異日期,我們可以使用- 運算子:

df['diff'] = df['fromdate'] - df['todate']

此操作會產生diff 列,其中包含datetime.timedelta 物件。但是,這些物件可能包含天作為一個組成部分,如以下輸出所示:

                    todate                 fromdate                    diff
0 2014-01-24 13:03:12.050  2014-01-26 23:41:21.870  2 days 10:38:09.820000
1 2014-01-27 11:57:18.240  2014-01-27 15:38:22.540  0 days 03:41:04.300000
2 2014-01-23 10:07:47.660  2014-01-23 18:50:41.420  0 days 08:42:53.760000

要將此結果轉換為僅小時和分鐘,我們可以使用帶有'timedelta64[ 的astype()方法h]'參數:

(df.fr-df.to).astype('timedelta64[h]')

此程式碼會將時間差轉換為小時,產生以下結果輸出:

0    58
1     3
2     8
dtype: float64

透過應用此方法,我們可以獲得兩個日期或時間戳記之間以小時和分鐘為單位的時間差,不論差值是否超過24 小時。

以上是如何計算兩個 Pandas 列之間的時間差(僅以小時和分鐘為單位)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn