ย้อนเวลากลับสู่อนาคต
มีการอัปเดต data pipeline ที่ป้อนข้อมูลเข้าสู่ DataFrame ride_sharing เพื่อบันทึกวันที่ของการเดินทางแต่ละครั้ง โดยข้อมูลนี้เก็บอยู่ในคอลัมน์ ride_date ซึ่งมีชนิดข้อมูลเป็น object หรือ string ใน pandas
พบบั๊กที่ทำให้การเดินทางที่เกิดขึ้นในวันนี้ถูกบันทึกเป็นปีหน้าแทน เพื่อแก้ไขปัญหานี้ ให้ค้นหาทุกแถวในคอลัมน์ ride_date ที่มีวันที่อยู่ในอนาคต แล้วกำหนดค่าสูงสุดของคอลัมน์นี้ให้เป็นวันที่ปัจจุบัน ก่อนดำเนินการดังกล่าว จะต้องแปลง ride_date ให้เป็นออบเจ็กต์ datetime ก่อน
แพ็กเกจ datetime ถูก import ไว้แล้วในชื่อ dt พร้อมกับแพ็กเกจอื่นๆ ที่ใช้มาก่อนหน้านี้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลใน Python
คำแนะนำการฝึกหัด
- แปลง
ride_dateให้เป็นออบเจ็กต์datetimeโดยใช้to_datetime()จากนั้นแปลงออบเจ็กต์datetimeให้เป็นdateแล้วเก็บผลลัพธ์ไว้ในคอลัมน์ride_dt - สร้างตัวแปร
todayเพื่อเก็บวันที่ปัจจุบันโดยใช้ฟังก์ชันdt.date.today() - สำหรับทุกแถวใน
ride_dtที่มีวันที่อยู่ในอนาคต ให้กำหนดค่าเป็นวันที่ปัจจุบัน - แสดงวันที่สูงสุดในคอลัมน์
ride_dt
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Convert ride_date to date
ride_sharing['ride_dt'] = pd.____(____['____']).dt.date
# Save today's date
today = ____
# Set all in the future to today's date
ride_sharing.____[____['____'] > ____, '____'] = ____
# Print maximum of ride_dt column
print(ride_sharing['ride_dt'].____())