นุ่น: วิธีคำนวณความแตกต่างระหว่างสองครั้ง


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อคำนวณความแตกต่างระหว่างสองครั้งใน DataFrame ของแพนด้า:

 #calculate time difference in hours
df[' hours_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (hours= 1 )

#calculate time difference in minutes
df[' min_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (minutes= 1 )

#calculate time difference in seconds
df[' sec_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (seconds= 1 )

ตัวอย่างนี้จะคำนวณความแตกต่างระหว่างเวลาในคอลัมน์ end_time และ start_time ของ Pandas DataFrame บางตัว

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: การคำนวณความแตกต่างระหว่างสองครั้งในหมีแพนด้า

สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:

 import pandas as pd

#createDataFrame
df=pd. DataFrame ({' start_time ':pd. date_range (start=' 5/25/2020 ', periods= 6 , freq=' 15min '),
                 ' end_time ':pd. date_range (start=' 5/26/2020 ', periods= 6 , freq=' 30min ')})

#view DataFrame
print (df)

           start_time end_time
0 2020-05-25 00:00:00 2020-05-26 00:00:00
1 2020-05-25 00:15:00 2020-05-26 00:30:00
2 2020-05-25 00:30:00 2020-05-26 01:00:00
3 2020-05-25 00:45:00 2020-05-26 01:30:00
4 2020-05-25 01:00:00 2020-05-26 02:00:00
5 2020-05-25 01:15:00 2020-05-26 02:30:00

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อคำนวณความแตกต่างของเวลาระหว่างคอลัมน์ start_time และ end_time ในรูปของชั่วโมง นาที และวินาที:

 #calculate time difference in hours
df[' hours_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (hours= 1 )

#calculate time difference in minutes
df[' min_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (minutes= 1 )

#calculate time difference in seconds
df[' sec_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (seconds= 1 )

#view updated DataFrame
print (df)

           start_time end_time hours_diff min_diff sec_diff
0 2020-05-25 00:00:00 2020-05-26 00:00:00 24.00 1440.0 86400.0
1 2020-05-25 00:15:00 2020-05-26 00:30:00 24.25 1455.0 87300.0
2 2020-05-25 00:30:00 2020-05-26 01:00:00 24.50 1470.0 88200.0
3 2020-05-25 00:45:00 2020-05-26 01:30:00 24.75 1485.0 89100.0
4 2020-05-25 01:00:00 2020-05-26 02:00:00 25.00 1500.0 90000.0
5 2020-05-25 01:15:00 2020-05-26 02:30:00 25.25 1515.0 90900.0

คอลัมน์ใหม่ประกอบด้วยความแตกต่างของเวลาระหว่างคอลัมน์ start_time และ end_time ในหน่วยที่ต่างกัน

ตัวอย่างเช่น ลองพิจารณาบรรทัดแรก:

  • ความแตกต่างระหว่างเวลาเริ่มต้นและเวลาสิ้นสุดคือ 24 ชั่วโมง
  • ความแตกต่างระหว่างเวลาเริ่มต้นและเวลาสิ้นสุดคือ 1440 นาที
  • ความแตกต่างระหว่างเวลาเริ่มต้นและเวลาสิ้นสุดคือ 86,400 วินาที

โปรดทราบว่าในตัวอย่างนี้ คอลัมน์ start_time และ end_time ได้รับการจัดรูปแบบเป็น datetime แล้ว

หากปัจจุบันคอลัมน์เวลาของคุณอยู่ในรูปแบบสตริง คุณสามารถใช้ pd.to_datetime เพื่อแปลงแต่ละคอลัมน์เป็นรูปแบบวันที่และเวลาก่อนที่จะคำนวณความแตกต่างระหว่างเวลา:

 #convert columns to datetime format
df[[' start_time ', ' end_time ']] = df[[' start_time ', ' end_time ]]. apply (pd. to_datetime )

จากนั้น คุณสามารถดำเนินการคำนวณความแตกต่างของเวลาระหว่างคอลัมน์ได้ เนื่องจากขณะนี้ทั้งสองคอลัมน์อยู่ในรูปแบบวันที่และเวลาที่แพนด้าสามารถจดจำได้

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

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

วิธีสร้างช่วงวันที่ใน Pandas
วิธีแยกเดือนจากวันที่ใน Pandas
วิธีแปลงการประทับเวลาเป็นวันที่/เวลาใน Pandas

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

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