ホームページ >バックエンド開発 >Python チュートリアル >2 つの Pandas DataFrame 列間の時間差を時間と分で効率的に計算するにはどうすればよいですか?

2 つの Pandas DataFrame 列間の時間差を時間と分で効率的に計算するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-01 07:37:10568ブラウズ

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

2 つの Pandas 列間の時間差を時間と分で計算します

DataFrame 内の 2 つの日付列間の時間差を決定することは、次の場合に役立ちます。さまざまなアプリケーション。ただし、減算演算子を使用した標準的なアプローチでは、日を含む 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 列には、2 つの日付間の時差が時間単位で表示されます。

以上が2 つの Pandas DataFrame 列間の時間差を時間と分で効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。