วิธีระบุรูปแบบใน pandas.to_datetime
คุณสามารถใช้ฟังก์ชัน pandas.to_datetime() เพื่อแปลงคอลัมน์สตริงเป็นคอลัมน์ datetime ใน Pandas DataFrame
เมื่อใช้ฟังก์ชันนี้ คุณสามารถใช้อาร์กิวเมนต์ รูปแบบ เพื่อระบุรูปแบบวันที่ของคุณอยู่ เพื่อหลีกเลี่ยงข้อผิดพลาดเมื่อแปลงจากสตริงเป็นวันที่และเวลา
ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:
df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])
ต่อไปนี้คือคำสั่งทั่วไปที่คุณสามารถระบุให้กับอาร์กิวเมนต์ รูปแบบได้ :
- %m : เดือนเป็นตัวเลขที่มีศูนย์ (01, 02, … 12)
- %d : วันของเดือนเป็นตัวเลขที่มีศูนย์ (01, 02, … 31)
- %y : ปีที่มีศตวรรษเป็นตัวเลข (2020, 2021, 2022 ฯลฯ)
- %H : ชั่วโมง (นาฬิกาแบบ 24 ชั่วโมง) เป็นตัวเลขที่มีเลขศูนย์ (00, 01, … 23)
- %I : เวลา (นาฬิกาแบบ 12 ชั่วโมง) เป็นตัวเลขที่มีเลขศูนย์ (01, 02, … 12)
- %p : AM หรือ PM
- %M : นาทีในรูปของตัวเลขที่มีศูนย์ (00, 01, … 59)
- %S : วินาทีในรูปแบบของตัวเลขที่มีศูนย์ (00, 01, … 59)
สำหรับรายการหลักเกณฑ์ทั้งหมด โปรดดู หน้านี้
ตัวอย่างต่อไปนี้แสดงวิธีใช้อาร์กิวเมนต์ รูปแบบ ในฟังก์ชัน to_datetime() ในสถานการณ์ที่แตกต่างกัน
ตัวอย่าง: ระบุรูปแบบใน pandas.to_datetime
สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับยอดขายรวมที่เกิดขึ้นในวันที่ต่างกันที่ร้านค้าปลีก:
import pandas as pd #createDataFrame df = pd. DataFrame ({' date ': ['10012023 4:15:30', '10042023 7:16:04', '10062023 9:25:00', '10142023 15:30:50', '10152023 18:15:00'], ' sales ': [100, 140, 235, 120, 250]}) #view DataFrame print (df) dirty dates 0 10012023 4:15:30 100 1 10042023 7:16:04 140 2 10062023 9:25:00 235 3 10142023 15:30:50 120 4 10152023 18:15:00 250 #view data type of each column in DataFrame print ( df.dtypes ) date object dirty int64 dtype:object
เราจะเห็นว่าคอลัมน์ วัน ที่ปัจจุบันเป็นคอลัมน์สตริง (เช่นวัตถุ)
สมมติว่าเราลองใช้ pandas.to_datetime() เพื่อแปลงคอลัมน์นี้เป็น datetime:
#attempt to convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '])
ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0
เราได้รับข้อผิดพลาดเนื่องจากฟังก์ชัน pandas.to_datetime() ไม่รู้จักรูปแบบวันที่และเวลาที่มีอยู่ในคอลัมน์ วันที่ ในปัจจุบัน
นอกจากนี้เรายังสามารถใช้อาร์กิวเมนต์ รูปแบบ เพื่อระบุรูปแบบของคอลัมน์:
#convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '], format=' %m%d%Y %H:%M:%S ')
#view DataFrame
print (df)
dirty dates
0 2023-10-01 04:15:30 100
1 2023-10-04 07:16:04 140
2 2023-10-06 09:25:00 235
3 2023-10-14 15:30:50 120
4 2023-10-15 18:15:00 250
#view updated type of each column
print ( df.dtypes )
date datetime64[ns]
dirty int64
dtype:object
เราจะเห็นว่าคอลัมน์ วัน ที่ถูกแปลงเป็นคอลัมน์วันที่และเวลาสำเร็จแล้ว และเราไม่ได้รับข้อผิดพลาดใดๆ เนื่องจากเราใช้อาร์กิวเมนต์ รูปแบบ เพื่อระบุรูปแบบที่แน่นอนของคอลัมน์ วัน ที่
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน to_datetime() ของ pandas ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
วิธีสร้างช่วงวันที่ใน Pandas
วิธีแปลงการประทับเวลาเป็นวันที่/เวลาใน Pandas
วิธีคำนวณความแตกต่างระหว่างวันที่สองวันในหมีแพนด้า