สมมติว่าคุณมีคอลัมน์วันที่และเวลาใน dataframe และผลลัพธ์สำหรับการแยกวันที่และเวลาเป็น
datetime date time 0 2020-01-01 07:00:00 2020-01-06 07:00:00 1 2020-01-02 07:00:00 2020-01-06 07:00:00 2 2020-01-03 07:00:00 2020-01-06 07:00:00 3 2020-01-04 07:00:00 2020-01-06 07:00:00 4 2020-01-05 07:00:00 2020-01-06 07:00:00 5 2020-01-06 07:00:00 2020-01-06 07:00:00
เพื่อแก้ปัญหานี้ เราจะปฏิบัติตามแนวทางด้านล่าง -
โซลูชันที่ 1
-
กำหนดคอลัมน์ dataframe 'datetime' โดยใช้ pd.date_range() มีการกำหนดไว้ด้านล่าง
pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:00',periods=6)})
-
ตั้งค่าสำหรับตัวแปร loop d เพื่อเข้าถึงคอลัมน์ df['datetime'] ทีละรายการ
-
แปลงวันที่และเวลาจาก for loop และบันทึกเป็น df['date'] และ df['time'] มีการกำหนดไว้ด้านล่าง
for d in df['datetime']: df['date'] = d.date() df['time'] = d.time()
ตัวอย่าง
มาตรวจสอบรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
import pandas as pd df = pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:00',periods=6)}) print("DataFrame is:\n", df) for d in df['datetime']: df['date'] = d.date() df['time'] = d.time() print(df)
ผลลัพธ์
DataFrame is: datetime 0 2020-01-01 07:10:00 1 2020-01-02 07:10:00 2 2020-01-03 07:10:00 3 2020-01-04 07:10:00 4 2020-01-05 07:10:00 5 2020-01-06 07:10:00 Date-time-hour-minutes : datetime date time 0 2020-01-01 07:10:00 2020-01-06 07:10:00 1 2020-01-02 07:10:00 2020-01-06 07:10:00 2 2020-01-03 07:10:00 2020-01-06 07:10:00 3 2020-01-04 07:10:00 2020-01-06 07:10:00 4 2020-01-05 07:10:00 2020-01-06 07:10:00 5 2020-01-06 07:10:00 2020-01-06 07:10:00
โซลูชันที่ 2
-
กำหนดดาต้าเฟรม
-
ใช้ฟังก์ชัน pd.to_datetime() ภายใน df['datetime'] และเลือกวันที่โดยใช้ dt.date จากนั้นให้บันทึกเป็น df['date']
-
ใช้ฟังก์ชัน pd.to_datetime() ภายใน df['datetime'] และเลือกเวลาโดยใช้ dt.time จากนั้นให้บันทึกเป็น df['time']
ตัวอย่าง
มาตรวจสอบรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
import pandas as pd df = pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:10',periods=6)}) print("DataFrame is:\n", df) df['date'] = pd.to_datetime(df['datetime']).dt.date df['time'] = pd.to_datetime(df['datetime']).dt.time print("Date-time-hour-minutes :\n", df)
ผลลัพธ์
DataFrame is: datetime 0 2020-01-01 07:10:00 1 2020-01-02 07:10:00 2 2020-01-03 07:10:00 3 2020-01-04 07:10:00 4 2020-01-05 07:10:00 5 2020-01-06 07:10:00 Date-time-hour-minutes : datetime date time 0 2020-01-01 07:10:00 2020-01-06 07:10:00 1 2020-01-02 07:10:00 2020-01-06 07:10:00 2 2020-01-03 07:10:00 2020-01-06 07:10:00 3 2020-01-04 07:10:00 2020-01-06 07:10:00 4 2020-01-05 07:10:00 2020-01-06 07:10:00 5 2020-01-06 07:10:00 2020-01-06 07:10:00