Giả sử, bạn có cột ngày giờ trong khung dữ liệu và kết quả để tách ngày và giờ là,
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
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các cách tiếp cận dưới đây -
Giải pháp 1
-
Xác định cột ‘datetime’ của khung dữ liệu bằng cách sử dụng pd.date_range (). Nó được định nghĩa bên dưới,
pd.DataFrame({'datetime':pd.date_range('2020-01-01 07:00',periods=6)})
-
Đặt biến vòng lặp for cho lần lượt truy cập vào cột df [‘datetime’].
-
Chuyển đổi ngày và giờ từ vòng lặp for và lưu nó dưới dạng df [‘date’] và df [‘time’]. Nó được định nghĩa bên dưới,
for d in df['datetime']: df['date'] = d.date() df['time'] = d.time()
Ví dụ
Hãy kiểm tra đoạn mã sau để hiểu rõ hơn -
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)
Đầu ra
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
Giải pháp 2
-
Xác định khung dữ liệu
-
Áp dụng hàm pd.to_datetime () bên trong df [‘datetime’] và chọn ngày bằng dt.date, sau đó lưu nó thành df [‘date’]
-
Áp dụng hàm pd.to_datetime () bên trong df [‘datetime’] và chọn thời gian bằng cách sử dụng dt.time, sau đó lưu nó thành df [‘time’]
Ví dụ
Hãy kiểm tra đoạn mã sau để hiểu rõ hơn -
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)
Đầu ra
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