Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengira Perbezaan Masa Antara Dua Lajur Panda dalam Jam dan Minit Sahaja?

Bagaimana untuk Mengira Perbezaan Masa Antara Dua Lajur Panda dalam Jam dan Minit Sahaja?

Susan Sarandon
Susan Sarandonasal
2024-12-01 15:11:09259semak imbas

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

Kira Perbezaan Masa Antara Dua Lajur Panda dalam Jam dan Minit

Dalam analisis data, selalunya perlu mengira perbezaan masa antara dua tarikh atau cap masa. Pandas, perpustakaan analisis data yang popular dalam Python, menyediakan kaedah yang mudah untuk pengiraan sedemikian. Walau bagaimanapun, apabila perbezaan masa melebihi 24 jam, hasilnya mungkin termasuk hari sebagai komponen. Artikel ini membincangkan cara untuk menukar hasil ini kepada hanya menunjukkan jam dan minit.

Pertimbangkan contoh rangka data berikut dengan dua lajur, dari tarikh dan sehingga kini:

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)

Untuk mengira perbezaan antara kedua-dua lajur tarikh, kita boleh menggunakan operator -:

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

Operasi ini menghasilkan lajur perbezaan, yang mengandungi objek datetime.timedelta. Walau bagaimanapun, objek ini mungkin termasuk hari sebagai komponen, seperti yang dilihat dalam output berikut:

                    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 hasil ini kepada jam dan minit sahaja, kita boleh menggunakan kaedah astype() dengan 'timedelta64[ h]' argument:

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

Kod ini akan menukarkan perbezaan masa kepada jam, menghasilkan yang berikut output:

0    58
1     3
2     8
dtype: float64

Dengan menggunakan kaedah ini, kita boleh memperoleh perbezaan masa antara dua tarikh atau cap masa dalam jam dan minit, tidak kira sama ada perbezaan melebihi 24 jam atau tidak.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Masa Antara Dua Lajur Panda dalam Jam dan Minit Sahaja?. 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