Chuyển đổi ngày giờ thành ngày python

Trong hướng dẫn ngắn này, chúng tôi sẽ chỉ cho bạn cách sử dụng Python để dễ dàng chuyển đổi cột ngày giờ của Khung dữ liệu Pandas và thay vào đó lấy tên của ngày trong tuần

Tạo một DataFrame ví dụ

Giả sử DataFrame sau

import pandas as pd

#Define Data
office = ['Denver','Paris', 'Denver', 'London' ]
full_date = ['1-15-2022 13:45:00', '4-8-2022 08:45:00', '2-23-2022 12:45:00', '4-7-2022 13:46:00']
salary = [143, 153, 128, 149]
hiring_dict  = dict[ office=office,hire_date=full_date,salary = salary]

# Create DataFrame
hiring_df = pd.DataFrame[data=hiring_dict]

Hãy xem các loại Dữ liệu của DataFrame

hiring_df.dtypes

Đây là kết quả chúng ta sẽ nhận được. Có vẻ như trước tiên chúng ta nên chuyển cột Rent_date thành datetime64 trước

office       object
hire_date    object
salary        int64
dtype: object

Chuyển đổi ngày giờ thành ngày trong tuần

Nếu chúng tôi cố gắng chuyển đổi cột ngày thuê thành ngày trong tuần, chúng tôi sẽ gặp lỗi

hiring_df['hire_date'].dt.weekday

Pandas sẽ ném tin nhắn sau

AttributeError: Can only use .dt accessor with datetimelike values

Như đã đề cập ở trên, trước khi tiếp tục, trước tiên chúng ta cần đảm bảo kiểu dữ liệu cột của mình là datetime. Sau đó, chúng tôi có thể sử dụng trình truy cập dt để tìm giá trị ngày. Ban đầu, chúng tôi sẽ tìm giá trị của ngày trong tuần của mỗi lần quan sát trong dữ liệu của mình

hiring_df['hire_weekday'] = \
pd.to_datetime[hiring_df['hire_date']].dt.weekday

Ngoài ra, chúng ta có thể sử dụng như sau



hiring_df['hire_weekday'] = \ pd.to_datetime[hiring_df['hire_date']].dt.day_of_week

Một tùy chọn nữa là sử dụng phương thức astype


hiring_df['hire_weekday']= \
[hiring_df['hire_date']].astype['datetime64'].dt.day_of_week

Tất cả những điều trên sẽ hiển thị số ngày trong tuần như hình bên dưới

hiring_df.head[]
officehire_datesalaryhire_weekday0Denver1-15-2022 13. 45. 0014351Paris4-8-2022 08. 45. 0015342Denver2-23-2022 12. 45. 0012823Luân Đôn4-7-2022 13. 46. 001493

Tìm tên ngày trong tuần

Theo cách tương tự, chúng ta có thể sử dụng dt. hàm day_name[] để lấy tên ngày trong tuần

hiring_df['hire_day_name'] = \
pd.to_datetime[hiring_df['hire_date']].dt.day_name[]

Tạo một cột có tên tháng

Như chúng ta đã thấy ở trên, chúng ta có thể sử dụng bộ truy cập dt để trích xuất một số giá trị ngày/giờ. Theo cách tương tự, bây giờ chúng ta sẽ tiếp tục và trích xuất tên tháng vào một cột DataFrame mới

Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển đổi đối tượng datetime thành giây trong Python. Chúng tôi sẽ sử dụng một số mô-đun tích hợp có sẵn và một số mã tùy chỉnh để xem chúng hoạt động. Trước tiên chúng ta hãy xem nhanh ngày tháng trong Python là gì

Ngày trong Python

Trong Python, chúng ta có thể làm việc với các hàm Date bằng cách nhập mô-đun tích hợp sẵn

hiring_df.dtypes
9 có sẵn trong Python. Chúng tôi có các đối tượng ngày tháng để làm việc với ngày tháng. Mô-đun ngày giờ này chứa các ngày ở dạng năm, tháng, ngày, giờ, phút, giây và micro giây. Mô-đun datetime có nhiều phương thức để trả về thông tin về đối tượng ngày tháng. Nó yêu cầu các giá trị ngày, tháng và năm để tính hàm. Các hàm ngày và giờ được so sánh giống như các biểu thức toán học giữa các số khác nhau

Chuyển đổi đối tượng ngày giờ thành giây

Trong Python, mô-đun ngày và giờ cung cấp nhiều chức năng khác nhau để thao tác ngày tháng. Chúng ta cũng có thể chuyển đổi một đối tượng

hiring_df.dtypes
9 thành giây bằng cách áp dụng các phép toán. Đối với chuyển đổi này, mô-đun datetime cung cấp phương thức
office       object
hire_date    object
salary        int64
dtype: object
1, phương thức
office       object
hire_date    object
salary        int64
dtype: object
2 và phương thức
office       object
hire_date    object
salary        int64
dtype: object
3 để chuyển đổi một đối tượng datetime thành giây. Ngày bắt đầu thường được chỉ định theo giờ UTC, vì vậy, để có kết quả chính xác, ngày 19 bạn cung cấp cho công thức này cũng phải theo giờ UTC. Nếu
hiring_df.dtypes
9 của bạn chưa có trong UTC, bạn sẽ cần phải chuyển đổi nó trước khi sử dụng

Thí dụ. Phương thức total_seconds[]

1.

hiring_df.dtypes
00 định dạng dấu thời gian đầu vào thành hh. mm. ss

2.

hiring_df.dtypes
01 lấy năm, tháng, ngày làm đối số để tạo đối tượng datetime

3.

hiring_df.dtypes
02 trả về tổng số giây

Ví dụ dưới đây đưa chuỗi thời gian vào định dạng hh được chấp nhận. mm. ss. Python cung cấp một phép toán trên datetime để tính toán sự khác biệt giữa hai ngày. Nó tìm thấy sự khác biệt giữa đối tượng datetime ban đầu và đối tượng datetime được tạo từ chuỗi thời gian. Giá trị được trả về là một đối tượng timedelta mà từ đó chúng ta có thể sử dụng hàm total_seconds[] để lấy giá trị tính bằng giây

hiring_df.dtypes
3


3669. 0

Thí dụ. Sử dụng phương thức dấu thời gian[]

Python 3 cung cấp phương thức

hiring_df.dtypes
03 để dễ dàng chuyển đổi đối tượng datetime thành giây. Phương pháp này sẽ chỉ hữu ích nếu bạn cần số giây từ 1970-01-01 UTC. Nó trả về một giá trị float đại diện cho các phân số chẵn của giây. Giả định rằng đối tượng datetime đại diện cho giờ địa phương, tôi. e. nó sẽ là số giây tính từ thời điểm hiện tại tại vị trí của bạn đến 1970-01-01 UTC

hiring_df.dtypes
0


1613408089. 609163

Thí dụ. Sử dụng lịch. phương thức timegm[]

Python 3 cung cấp một thư viện chuẩn có tên là

hiring_df.dtypes
04 có phương thức
hiring_df.dtypes
05 để dễ dàng chuyển đổi đối tượng datetime thành giây. Phương pháp này chuyển đổi ngày giờ thành giây kể từ Epoch i. e. 1970-01-01 UTC. Vì phương thức timestamp[] ở trên trả về một giá trị float, phương thức này loại bỏ các phân số của giây

hiring_df.dtypes
0


1613408988

Sự kết luận

Trong bài viết này, chúng ta đã học cách chuyển đổi một đối tượng ngày giờ thành định dạng giây bằng cách sử dụng mô-đun

hiring_df.dtypes
9. Chúng tôi đã thảo luận về hoạt động của các hàm datetime bằng các đoạn mã khác nhau

Chủ Đề