Pandas: วิธีเลือกแถว dataframe ตามเวลาประทับ


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

 df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

ไวยากรณ์นี้จะถือว่า tstamp มีประเภทวันที่และเวลาอยู่แล้ว

ถ้าไม่ คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแปลงเป็นคอลัมน์ datetime:

 df[' tstamp '] = pd. to_datetime (df[' tstamp '])

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

ตัวอย่าง: เลือกแถว Pandas DataFrame ตามเวลาประทับ

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับการขายที่ร้านค้าปลีก:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' tstamp ': ['2022-10-25 04:00:00', '2022-10-25 11:55:12',
                                 '2022-10-26 02:00:00', '2022-10-27 10:30:00',
                                 '2022-10-27 14:25:00', '2022-10-28 01:15:27'],
                   ' sales ': [18, 22, 19, 14, 14, 11]})

#view DataFrame
print (df)

                tstamp sales
0 2022-10-25 04:00:00 18
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

สมมติว่าเราต้องการเลือกเฉพาะแถวระหว่างการประทับเวลาสองรายการต่อไปนี้:

  • 25-10-2565 04:30:00 น
  • 27-10-2565 11:00:00 น

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำสิ่งนี้:

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows between two timestamps
df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

	tstamp sales
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14

โปรดทราบว่ามีการเลือกเฉพาะบรรทัดระหว่างการประทับเวลาสองรายการที่เราระบุเท่านั้น

โปรดทราบว่าคุณสามารถเลือกแถวตามเวลาประทับได้โดยใช้เฉพาะค่าวันที่เท่านั้น

ตัวอย่างเช่น เราสามารถใช้โค้ดต่อไปนี้เพื่อเลือกแถวทั้งหมดที่มีการประทับเวลามากกว่า 2022-10-27:

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows with timestamp after 2022-10-27
df[df[' tstamp '] > ' 2022-10-27 ']

	tstamp sales
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

โปรดทราบว่าจะเลือกเฉพาะแถวที่มีค่าในคอลัมน์ tsamp หลังวันที่ 10-2022-2022 เท่านั้น

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

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

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

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

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