สรุปบทเรียน

การทำงานกับวันที่และเวลาใน Python

Max Shron

Data Scientist and Author

ทบทวน: Dates and Calendars

  • คลาส date() รับ year, month และ day เป็นอาร์กิวเมนต์
  • ออบเจกต์ date มี accessor เช่น .year และเมธอด เช่น .weekday()
  • เปรียบเทียบออบเจกต์ date ได้เหมือนตัวเลข โดยใช้ min(), max() และ sort()
  • ลบ date ออกจาก date อีกตัวเพื่อให้ได้ timedelta
  • แปลงออบเจกต์ date เป็นสตริงด้วยเมธอด .isoformat() หรือ .strftime()
การทำงานกับวันที่และเวลาใน Python

ทบทวน: การรวม Dates และ Times

  • คลาส datetime() รับอาร์กิวเมนต์ทั้งหมดของ date() บวก hour, minute, second และ microsecond
  • อาร์กิวเมนต์เพิ่มเติมทั้งหมดเป็นตัวเลือก ถ้าไม่ระบุจะถูกกำหนดเป็นศูนย์โดยค่าเริ่มต้น
  • แทนที่ค่าใดก็ได้ใน datetime ด้วยเมธอด .replace()
  • แปลง timedelta เป็นจำนวนเต็มด้วยเมธอด .total_seconds()
  • แปลงสตริงเป็นวันที่ด้วย .strptime() และวันที่เป็นสตริงด้วย .strftime()
การทำงานกับวันที่และเวลาใน Python

ทบทวน: Timezones และ Daylight Saving

  • datetime จะ "timezone aware" เมื่อมีการตั้งค่า tzinfo ไว้ ถ้าไม่มีจะถือเป็น "timezone naive"
  • การตั้งค่า timezone บอกให้ datetime รู้วิธีปรับตัวเองให้ตรงกับ UTC ซึ่งเป็นมาตรฐานเวลาสากล
  • ใช้เมธอด .replace() เพื่อเปลี่ยน timezone ของ datetime โดยที่วันที่และเวลายังคงเดิม
  • ใช้เมธอด .astimezone() เพื่อเลื่อนวันที่และเวลาให้ตรงกับ timezone ใหม่
  • dateutil.tz มีฐานข้อมูล timezone ที่ครอบคลุมและอัปเดตอยู่เสมอ
การทำงานกับวันที่และเวลาใน Python

ทบทวน: Timestamps ที่ใช้งานง่ายและทรงพลังใน Pandas

  • เมื่ออ่านไฟล์ csv ให้ตั้งค่าอาร์กิวเมนต์ parse_dates เป็นรายการคอลัมน์ที่ต้องการแปลงเป็น datetime
  • หาก parse_dates ไม่ทำงาน ให้ใช้ฟังก์ชัน pd.to_datetime()
  • การจัดกลุ่มแถวด้วย .groupby() ช่วยให้คำนวณค่า aggregate ต่อกลุ่มได้ เช่น .first(), .min() หรือ .mean()
  • .resample() จัดกลุ่มแถวตามคอลัมน์ datetime ไม่ว่าจะเป็นรายปี รายเดือน รายวัน และอื่นๆ
  • ใช้ .tz_localize() เพื่อตั้งค่า timezone โดยที่วันที่และเวลายังคงเดิม
  • ใช้ .tz_convert() เพื่อเปลี่ยนวันที่และเวลาให้ตรงกับ timezone ใหม่
การทำงานกับวันที่และเวลาใน Python

ยินดีด้วย!

การทำงานกับวันที่และเวลาใน Python

Preparing Video For Download...