Cara mengonversi timedelta ke int di pandas (dengan contoh)


Anda dapat menggunakan metode berikut untuk mengonversi kolom timedelta menjadi kolom integer di pandas DataFrame:

Metode 1: Ubah Timedelta menjadi Integer (Hari)

 df[' days '] = df[' timedelta_column ']. dt . days

Metode 2: Ubah Timedelta ke Integer (Jam)

 df[' hours '] = df[' timedelta_column '] / pd. Timedelta (hours= 1 )

Metode 3: Ubah Timedelta menjadi Integer (Menit)

 df[' minutes '] = df[' timedelta_column '] / pd. Timedelta (minutes= 1 )

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan pandas DataFrame berikut:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' promotion ': ['A', 'B', 'C', 'D'],
                   ' start ': ['2021-10-04 13:29:00', '2021-10-07 12:30:00',
                             '2021-10-15 04:20:00', '2021-10-18 15:45:03'],
                   ' end ': ['2021-10-08 11:29:06', '2021-10-15 10:30:07',
                             '2021-10-29 05:50:15', '2021-10-22 15:40:03']})

#convert start date and end date columns to datetime
df[' start '] = pd. to_datetime (df[' start '])
df[' end '] = pd. to_datetime (df[' end '])

#create new column that contains time delta between start and end
df[' duration '] = df[' end '] - df[' start ']

#view DataFrame
print (df)

  promotion start end duration
0 A 2021-10-04 13:29:00 2021-10-08 11:29:06 3 days 22:00:06
1 B 2021-10-07 12:30:00 2021-10-15 10:30:07 7 days 22:00:07
2 C 2021-10-15 04:20:00 2021-10-29 05:50:15 14 days 01:30:15
3 D 2021-10-18 15:45:03 2021-10-22 15:40:03 3 days 23:55:00

Contoh 1: Ubah Timedelta menjadi bilangan bulat (hari)

Kode berikut menunjukkan cara membuat kolom baru bernama hari yang mengubah delta waktu di kolom durasi menjadi nilai integer yang mewakili jumlah hari di kolom delta waktu.

 #create new column that converts timedelta into integer number of days
df[' days '] = df[' duration ']. dt . days

#view updated DataFrame
print (df)

  promotion start end duration days
0 A 2021-10-04 13:29:00 2021-10-08 11:29:06 3 days 22:00:06 3
1 B 2021-10-07 12:30:00 2021-10-15 10:30:07 7 days 22:00:07 7
2 C 2021-10-15 04:20:00 2021-10-29 05:50:15 14 days 01:30:15 14
3 D 2021-10-18 15:45:03 2021-10-22 15:40:03 3 days 23:55:00 3

Kita dapat menggunakan dtype untuk memeriksa tipe data kolom baru ini:

 #check data type
df. days . dtype

dtype('int64')

Kolom baru adalah bilangan bulat.

Contoh 2: Ubah Timedelta menjadi integer (jam)

Kode berikut menunjukkan cara membuat kolom baru bernama jam yang mengubah delta waktu di kolom durasi menjadi nilai numerik yang mewakili jumlah total jam di kolom delta waktu.

 #create new column that converts timedelta into total number of hours
df[' hours '] = df[' duration '] / pd. Timedelta (hours= 1 )

#view updated DataFrame
print (df)

  promotion start end duration hours
0 A 2021-10-04 13:29:00 2021-10-08 11:29:06 3 days 22:00:06 94.001667  
1 B 2021-10-07 12:30:00 2021-10-15 10:30:07 7 days 22:00:07 190.001944
2 C 2021-10-15 04:20:00 2021-10-29 05:50:15 14 days 01:30:15 337.504167
3 D 2021-10-18 15:45:03 2021-10-22 15:40:03 3 days 23:55:00 95.916667

Kita dapat menggunakan dtype untuk memeriksa tipe data kolom baru ini:

 #check data type
df. hours . dtype

dtype('float64')

Kolom baru adalah pelampung.

Contoh 3: Ubah Timedelta menjadi integer (menit)

Kode berikut menunjukkan cara membuat kolom baru bernama menit yang mengubah delta waktu di kolom durasi menjadi nilai numerik yang mewakili jumlah total menit di kolom delta waktu.

 #create new column that converts timedelta into total number of minutes
df[' minutes '] = df[' duration '] / pd. Timedelta (minutes= 1 )

#view updated DataFrame
print (df)

  promotion start end duration minutes
0 A 2021-10-04 13:29:00 2021-10-08 11:29:06 3 days 22:00:06 5640.100000  
1 B 2021-10-07 12:30:00 2021-10-15 10:30:07 7 days 22:00:07 11400.116667
2 C 2021-10-15 04:20:00 2021-10-29 05:50:15 14 days 01:30:15 20250.250000
3 D 2021-10-18 15:45:03 2021-10-22 15:40:03 3 days 23:55:00 5755.000000

Kita dapat menggunakan dtype untuk memeriksa tipe data kolom baru ini:

 #check datatype
df. minutes . dtype

dtype('float64')

Kolom baru adalah pelampung.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:

Cara mengonversi kolom menjadi DateTime di Pandas
Bagaimana cara mengonversi DateTime ke tanggal di Pandas
Cara mengekstrak bulan dari tanggal di Pandas

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *