วิธีระบุรูปแบบใน 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
วิธีคำนวณความแตกต่างระหว่างวันที่สองวันในหมีแพนด้า

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

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