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. 001493Tì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 nhauChuyể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: object1, phương thức
office object hire_date object salary int64 dtype: object2 và phương thức
office object hire_date object salary int64 dtype: object3 để 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ụngThí 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. ss2.
hiring_df.dtypes
01 lấy năm, tháng, ngày làm đối số để tạo đối tượng datetime3.
hiring_df.dtypes
02 trả về tổng số giâyVí 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 UTChiring_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âyhiring_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