Pandas: วิธีเพิ่ม/ลบเวลาเป็น datetime


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อเพิ่มหรือลบเวลาจากวันที่/เวลาในแพนด้า:

 #add time to datetime
df[' new_datetime '] = df[' my_datetime '] + pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )

#subtract time from datetime
df[' new_datetime '] = df[' my_datetime '] - pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 ) 

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

ตัวอย่าง: เพิ่ม/ลบเวลาเป็น Datetime ใน Pandas

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งแสดงยอดขายที่ทำโดยร้านค้าในวันที่และเวลาที่แตกต่างกัน 10 แห่ง:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' time ': pd.date_range (' 2022-01-01 ', periods= 10 ),
                   ' sales ': [14, 22, 25, 29, 31, 10, 12, 8, 22, 25]})

#view DataFrame
print (df)

        time sales
0 2022-01-01 14
1 2022-01-02 22
2 2022-01-03 25
3 2022-01-04 29
4 2022-01-05 31
5 2022-01-06 10
6 2022-01-07 12
7 2022-01-08 8
8 2022-01-09 22
9 2022-01-10 25

เราสามารถใช้ฟังก์ชัน pandas Timedelta เพื่อเพิ่ม 5 ชั่วโมง 10 นาที และ 3 วินาทีให้กับแต่ละค่า datetime ในคอลัมน์ “time”:

 #create new column that contains time + 5 hours, 10 minutes, 3 seconds
df[' time_plus_some '] = df[' time '] + pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )

#view updated DataFrame
print (df)

        time sales time_plus_some
0 2022-01-01 14 2022-01-01 05:10:03
1 2022-01-02 22 2022-01-02 05:10:03
2 2022-01-03 25 2022-01-03 05:10:03
3 2022-01-04 29 2022-01-04 05:10:03
4 2022-01-05 31 2022-01-05 05:10:03
5 2022-01-06 10 2022-01-06 05:10:03
6 2022-01-07 12 2022-01-07 05:10:03
7 2022-01-08 8 2022-01-08 05:10:03
8 2022-01-09 22 2022-01-09 05:10:03
9 2022-01-10 25 2022-01-10 05:10:03

และเราสามารถสร้างคอลัมน์ใหม่ที่ลบ 5 ชั่วโมง 10 นาที และ 3 วินาทีออกจากค่าวันที่และเวลาแต่ละค่าในคอลัมน์ “เวลา” ได้อย่างง่ายดายเช่นเดียวกัน:

 #create new column that contains time - 5 hours, 10 minutes, 3 seconds
df[' time_minus_some '] = df[' time '] - pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )

#view updated DataFrame
print (df)

        time sales time_minus_some
0 2022-01-01 14 2021-12-31 18:49:57
1 2022-01-02 22 2022-01-01 18:49:57
2 2022-01-03 25 2022-01-02 18:49:57
3 2022-01-04 29 2022-01-03 18:49:57
4 2022-01-05 31 2022-01-04 18:49:57
5 2022-01-06 10 2022-01-05 18:49:57
6 2022-01-07 12 2022-01-06 18:49:57
7 2022-01-08 8 2022-01-07 18:49:57
8 2022-01-09 22 2022-01-08 18:49:57
9 2022-01-10 25 2022-01-09 18:49:57

หมายเหตุ #1 : ในตัวอย่างเหล่านี้ เราใช้จำนวนชั่วโมง นาที และวินาทีที่ระบุ แต่คุณสามารถใช้หน่วยเหล่านี้เพียงหน่วยเดียวได้หากต้องการ ตัวอย่างเช่น คุณสามารถระบุ pd.Timedelta(hours=5) เพื่อเพิ่มห้าชั่วโมงให้กับค่าวันที่และเวลา

หมายเหตุ #2 : คุณสามารถค้นหาเอกสารฉบับเต็มของฟังก์ชัน pandas Timedelta ได้ที่นี่

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

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

วิธีแปลง Timedelta เป็น Int ใน Pandas
วิธีแปลง DateTime เป็นสตริงใน Pandas
วิธีแปลงการประทับเวลาเป็นวันที่/เวลาใน Pandas
วิธีสร้างคอลัมน์วันที่จากปี เดือน และวันใน Pandas

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

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