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
Lepaskan: 2024-12-01 07:37:10
asal
566 orang telah melayarinya

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']
Salin selepas log masuk

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
Salin selepas log masuk

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]')
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan