首頁 >後端開發 >Python教學 >如何有效計算兩個 Pandas DataFrame 欄位之間的小時和分鐘時間差?

如何有效計算兩個 Pandas DataFrame 欄位之間的小時和分鐘時間差?

DDD
DDD原創
2024-12-01 07:37:10577瀏覽

How Can I Efficiently Calculate the Time Difference in Hours and Minutes Between Two Pandas DataFrame Columns?

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

確定DataFrame 中兩個日期欄位之間的時間差對於各種應用。但是,使用減法運算子的標準方法會產生包含天數的 datetime.timedelta 物件。要將其轉換為小時和分鐘,我們可以利用 as_type 方法。

假設我們的 DataFrame 中有兩列,fromdatetodate,分別代表開始時間和結束時間。使用減法運算符,我們得到的時間差如下:

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']

這給我們提供了以下輸出,其中包括天數:

                    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

將時差轉換為僅小時和分鐘,我們可以使用as_type 方法將datetime.timedelta物件轉換為timedelta64 具有特定測量單位的物件:

df['diff_hours'] = df['diff'].astype('timedelta64[h]')

這為我們提供了輸出:

                    todate                 fromdate                  diff  diff_hours
0 2014-01-24 13:03:12.050  2014-01-26 23:41:21.870  2 days 10:38:09.820  58
1 2014-01-27 11:57:18.240  2014-01-27 15:38:22.540  0 days 03:41:04.300   3
2 2014-01-23 10:07:47.660  2014-01-23 18:50:41.420  0 days 08:42:53.760   8

如您所見, diff_hours 欄位現在包含兩個日期之間的時差(以小時為單位)。

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

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