Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengira Perbezaan Masa dengan Cekap dalam Jam dan Minit Antara Dua Lajur DataFrame Panda?

Bagaimanakah Saya Boleh Mengira Perbezaan Masa dengan Cekap dalam Jam dan Minit Antara Dua Lajur DataFrame Panda?

DDD
DDDasal
2024-12-01 07:37:10569semak imbas

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

Kira Perbezaan Masa Antara Dua Lajur Panda dalam Jam dan Minit

Menentukan perbezaan masa antara dua lajur tarikh dalam DataFrame boleh berguna untuk pelbagai aplikasi. Walau bagaimanapun, pendekatan standard menggunakan operator tolak menghasilkan objek datetime.timedelta yang merangkumi hari. Untuk menukar ini kepada jam dan minit, kami boleh memanfaatkan kaedah as_type.

Andaikan kami mempunyai dua lajur dalam DataFrame kami, fromdate dan todate, masing-masing mewakili masa mula dan tamat. Menggunakan operator penolakan, kami mendapat perbezaan masa seperti berikut:

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

Ini memberikan kami output berikut, yang termasuk hari:

                    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

Untuk menukar perbezaan masa kepada jam sahaja dan minit, kita boleh menggunakan kaedah as_type untuk menukar objek datetime.timedelta kepada timedelta64 objek dengan unit ukuran tertentu:

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

Ini memberikan kita output:

                    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

Seperti yang anda lihat, diff_hours lajur kini mengandungi perbezaan masa antara dua tarikh dalam jam.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Perbezaan Masa dengan Cekap dalam Jam dan Minit Antara Dua Lajur DataFrame Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn