วิธีแปลง timedelta เป็น int ใน pandas (พร้อมตัวอย่าง)


คุณสามารถใช้วิธีการต่อไปนี้เพื่อแปลงคอลัมน์ timedelta เป็นคอลัมน์จำนวนเต็มใน Pandas DataFrame:

วิธีที่ 1: แปลง Timedelta เป็นจำนวนเต็ม (วัน)

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

วิธีที่ 2: แปลง Timedelta เป็นจำนวนเต็ม (ชั่วโมง)

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

วิธีที่ 3: แปลง Timedelta เป็นจำนวนเต็ม (นาที)

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

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:

 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

ตัวอย่างที่ 1: แปลง Timedelta เป็นจำนวนเต็ม (วัน)

รหัสต่อไปนี้แสดงวิธีการสร้างคอลัมน์ใหม่ที่เรียกว่า วัน ที่แปลงไทม์เดลต้าในคอลัมน์ ระยะเวลา เป็นค่าจำนวนเต็มที่แสดงถึงจำนวนวันในคอลัมน์ไทม์เดลต้า

 #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

เราสามารถใช้ dtype เพื่อตรวจสอบประเภทข้อมูลของคอลัมน์ใหม่นี้:

 #check data type
df. days . dtype

dtype('int64')

คอลัมน์ใหม่เป็นจำนวนเต็ม

ตัวอย่างที่ 2: แปลง Timedelta เป็นจำนวนเต็ม (ชั่วโมง)

รหัสต่อไปนี้แสดงวิธีการสร้างคอลัมน์ใหม่ที่เรียกว่า ชั่วโมง ซึ่งจะแปลงไทม์เดลต้าในคอลัมน์ ระยะเวลา เป็นค่าตัวเลขที่แสดงถึงจำนวนชั่วโมงทั้งหมดในคอลัมน์ไทม์เดลต้า

 #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

เราสามารถใช้ dtype เพื่อตรวจสอบประเภทข้อมูลของคอลัมน์ใหม่นี้:

 #check data type
df. hours . dtype

dtype('float64')

คอลัมน์ใหม่เป็นแบบทศนิยม

ตัวอย่างที่ 3: แปลง Timedelta เป็นจำนวนเต็ม (นาที)

รหัสต่อไปนี้แสดงวิธีการสร้างคอลัมน์ใหม่ที่เรียกว่า นาที ที่แปลงไทม์เดลต้าในคอลัมน์ ระยะเวลา เป็นค่าตัวเลขที่แสดงถึงจำนวนนาทีทั้งหมดในคอลัมน์ไทม์เดลต้า

 #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

เราสามารถใช้ dtype เพื่อตรวจสอบประเภทข้อมูลของคอลัมน์ใหม่นี้:

 #check datatype
df. minutes . dtype

dtype('float64')

คอลัมน์ใหม่เป็นแบบทศนิยม

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:

วิธีแปลงคอลัมน์เป็น DateTime ใน Pandas
วิธีแปลง DateTime เป็นวันที่ใน Pandas
วิธีแยกเดือนจากวันที่ใน Pandas

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *