Có thể lấy số tháng hoặc số tháng của năm từ một đối tượng DateTime trong Python có thể cực kỳ hữu ích cho kỹ thuật tính năng. Trong bài đăng này, tôi sẽ hướng dẫn cách thực hiện việc này một cách đơn giản với nhiều biến thể
Hãy thử yêu cầu dữ liệu
Nhận ngày trong tháng và ngày trong tuần từ một ngày
Hãy thực hiện thêm một số trích xuất, bởi vì đó là một nhiệm vụ thực sự phổ biến. Lần này, chúng tôi sẽ cố gắng lấy ngày trong tháng và ngày trong tuần từ
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
37. Datetime sẽ cung cấp cho chúng ta ngày trong tuần dưới dạng số bằng cách sử dụng hàm print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
38 nhưng chúng ta có thể chuyển đổi dữ liệu này sang định dạng văn bản [i. e. Thứ Hai, Thứ Ba, Thứ Tư…] bằng cách sử dụng mô-đun print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
39 và một phương thức có tên là print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
40Chúng tôi sẽ bắt đầu bằng cách nhập
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
39, sau đó sử dụng print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
42 và print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
38 trên print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
37. Từ đó, chúng ta có thể lấy ngày trong tuần ở định dạng văn bản như vậyimport datetime
date = datetime.date[2022, 9, 1]
year_month = date.strftime['%Y-%m']
print[date]
print[f"Year month combination: {year_month}"]
"""
Output:
2022-09-01
Year month combination: 2022-09
"""
1import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
0Đợi một chút, điều đó có vẻ hơi kỳ lạ. Ngày thứ ba trong tuần phải là Thứ Tư chứ không phải Thứ Năm, phải không?
Chúng ta hãy xem xét kỹ hơn biến
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
40 đó bằng cách sử dụng vòng lặp forprint['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
3print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
4Bây giờ chúng ta có thể thấy rằng Python bắt đầu các tuần vào thứ Hai và tính từ chỉ số 0 thay vì bắt đầu từ 1. Nên việc số 3 được chuyển thành “thứ 5” như chúng ta đã thấy ở trên là hợp lý
Nhận giờ và phút từ một đối tượng thời gian Python
Bây giờ, hãy tìm hiểu về thời gian và trích xuất giờ và phút từ đối tượng datetime. Giống như những gì chúng ta đã làm ở trên với tháng và năm, chúng ta có thể sử dụng các thuộc tính lớp
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
46 và print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
47 để lấy giờ và phút trong ngàyHãy đặt ngày giờ mới bằng hàm
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
35 . Khi viết bài này, đó là ngày 25 tháng 10 năm 2019 lúc 10. 25 giờ sáng. Tất nhiên, bạn sẽ nhận được các kết quả khác nhau tùy thuộc vào thời điểm bạn chọn chạy mã nàyimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
60import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
61Nhận tuần của năm từ một đối tượng ngày giờ
Chúng ta cũng có thể làm những điều thú vị hơn với
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6. Ví dụ, nếu chúng ta muốn biết tuần đó là thứ mấy trong năm thì sao?Chúng ta có thể lấy năm, tuần trong năm và ngày trong tuần từ một đối tượng
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6 với hàm import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
601Cụ thể,
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
602 trả về một bộ có năm ISO, số tuần và ngày trong tuần. Lịch ISO là lịch tiêu chuẩn được sử dụng rộng rãi dựa trên lịch Gregorian. Bạn có thể đọc về nó chi tiết hơn tại liên kết đó, nhưng với mục đích của chúng tôi, tất cả những gì chúng tôi cần biết là nó hoạt động như một lịch thông thường, bắt đầu mỗi tuần vào Thứ Haiimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
62import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
63Lưu ý rằng trong lịch ISO, tuần bắt đầu được tính từ 1, vì vậy ở đây 5 đại diện cho ngày chính xác trong tuần. Thứ sáu
Ở phần trên, chúng ta có thể thấy rằng đây là tuần thứ 43 của năm, nhưng nếu chúng ta muốn tách riêng con số đó, chúng ta có thể làm như vậy bằng cách lập chỉ mục giống như chúng ta có thể làm cho bất kỳ danh sách hoặc bộ Python nào khác
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
64____165Chuyển đổi một đối tượng ngày thành Dấu thời gian Unix và ngược lại
Trong lập trình, không hiếm trường hợp gặp phải dữ liệu ngày và giờ được lưu trữ dưới dạng dấu thời gian hoặc muốn lưu trữ dữ liệu của riêng bạn ở định dạng dấu thời gian Unix
Chúng ta có thể làm điều đó bằng cách sử dụng hàm
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
603 tích hợp của datetime, hàm này lấy một đối tượng print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6 làm đối số và trả về ngày và giờ đó ở định dạng dấu thời gianimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
66import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
67Tương tự, chúng ta có thể thực hiện chuyển đổi ngược lại bằng cách sử dụng
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
605. Đây là một hàm print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6 lấy dấu thời gian [ở định dạng float] làm đối số và trả về một đối tượng print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6, như bên dướiimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
68____169Đo khoảng thời gian với các đối tượng Timedelta
Thông thường, chúng ta có thể muốn đo khoảng thời gian hoặc khoảng thời gian bằng Python datetime. Chúng tôi có thể làm điều này với lớp ______1608 được tích hợp sẵn. Đối tượng
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
608 biểu thị khoảng thời gian giữa hai ngày hoặc thời gian. Chúng ta có thể sử dụng điều này để đo khoảng thời gian hoặc thao tác ngày tháng hoặc thời gian bằng cách cộng và trừ chúng, v.v.Theo mặc định, một đối tượng timedelta có tất cả các tham số được đặt thành 0. Hãy tạo một đối tượng timedelta mới dài hai tuần và xem nó trông như thế nào
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
60import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
61Lưu ý rằng chúng ta có thể lấy khoảng thời gian tính bằng ngày bằng cách sử dụng thuộc tính lớp
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
608 import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
611. Như chúng ta có thể thấy trong tài liệu của nó, chúng ta cũng có thể nhận được khoảng thời gian này tính bằng giây hoặc micro giâyHãy tạo một khoảng thời gian timedelta khác để thực hành thêm một chút
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
62import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
63Bây giờ, hãy bắt đầu sử dụng các đối tượng timedelta cùng với các đối tượng datetime để thực hiện một số phép toán. Cụ thể, hãy thêm một vài khoảng thời gian khác nhau vào ngày giờ hiện tại để xem sau 15 ngày nữa sẽ là ngày nào, hai tuần trước là ngày nào
Để làm điều này, chúng ta có thể sử dụng các toán tử
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
612 hoặc import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
613 để cộng hoặc trừ đối tượng timedelta với/từ một đối tượng datetime. Kết quả sẽ là đối tượng datetime cộng hoặc trừ khoảng thời gian được chỉ định trong đối tượng timedelta của chúng tôi. Mát mẻ, phải không?[Ghi chú. trong đoạn mã dưới đây, đó là ngày 25 tháng 10 lúc 11 giờ. 12 giờ sáng;
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
64import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
65Lưu ý rằng đầu ra của các phép toán này vẫn là một đối tượng
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6Học kỹ năng dữ liệu
Được tăng lương tiếp theo hoặc chuyển sang sự nghiệp trong khoa học dữ liệu bằng cách học các kỹ năng dữ liệu
Đăng ký tài khoản miễn phí và thử các khóa học tương tác của chúng tôi về Python, R, SQL, v.v.
Đăng ký ngay
[Nó miễn phí]
Tìm sự khác biệt giữa hai ngày và giờ
Tương tự như những gì chúng tôi đã làm ở trên, chúng tôi cũng có thể trừ một ngày khỏi một ngày khác để tìm khoảng thời gian giữa chúng bằng cách sử dụng datetime
Bởi vì kết quả của phép toán này là một khoảng thời gian, nên đối tượng được tạo ra khi chúng ta trừ một ngày khỏi một ngày khác sẽ là một đối tượng
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
608Tại đây, chúng ta sẽ tạo hai đối tượng
import datetime
date = datetime.date[2022, 9, 1]
year_month = date.strftime['%Y-%m']
print[date]
print[f"Year month combination: {year_month}"]
"""
Output:
2022-09-01
Year month combination: 2022-09
"""
11 [hãy nhớ rằng, những đối tượng này hoạt động giống như đối tượng ________ 46, chỉ là chúng không bao gồm dữ liệu thời gian] và lấy đối tượng trừ đi một đối tượng để tìm khoảng thời gianimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
66import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
67Ở trên, chúng tôi chỉ sử dụng ngày tháng để làm rõ, nhưng chúng tôi có thể làm điều tương tự với các đối tượng
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6 để có được phép đo chính xác hơn bao gồm cả giờ, phút và giâyimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
68import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
69Định dạng ngày. Tìm hiểu thêm về strftime[] và strptime[]
Chúng tôi đã đề cập ngắn gọn về
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
00 và import datetime
date = datetime.date[2022, 9, 1]
year_month = date.strftime['%Y-%m']
print[date]
print[f"Year month combination: {year_month}"]
"""
Output:
2022-09-01
Year month combination: 2022-09
"""
19 trước đó, nhưng chúng ta hãy xem xét kỹ hơn các phương pháp này vì chúng thường quan trọng đối với công việc phân tích dữ liệu trong Pythonimport datetime
date = datetime.date[2022, 9, 1]
year_month = date.strftime['%Y-%m']
print[date]
print[f"Year month combination: {year_month}"]
"""
Output:
2022-09-01
Year month combination: 2022-09
"""
19 là phương thức chúng ta đã sử dụng trước đây và bạn sẽ nhớ lại rằng phương thức này có thể biến ngày và giờ được định dạng dưới dạng chuỗi văn bản thành đối tượng ngày giờ theo định dạng sauimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
624Lưu ý rằng phải mất hai đối số
- chuỗi − thời gian ở định dạng chuỗi mà chúng ta muốn chuyển đổi
- format − định dạng cụ thể của thời gian trong chuỗi, để strptime[] có thể phân tích cú pháp chính xác
Lần này, hãy thử chuyển đổi một loại chuỗi ngày khác. Trang web này là một tài liệu tham khảo thực sự hữu ích để tìm mã định dạng cần thiết nhằm giúp
import datetime
date = datetime.date[2022, 9, 1]
year_month = date.strftime['%Y-%m']
print[date]
print[f"Year month combination: {year_month}"]
"""
Output:
2022-09-01
Year month combination: 2022-09
"""
19 diễn giải đầu vào chuỗi của chúng tôiimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
70import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
71Bây giờ, hãy làm điều gì đó nâng cao hơn một chút để thực hành mọi thứ chúng ta đã học cho đến nay. Chúng ta sẽ bắt đầu với một ngày ở định dạng chuỗi, chuyển đổi nó thành một đối tượng ngày giờ và xem xét một số cách định dạng khác nhau [dd/mm và mm/dd]
Sau đó, gắn bó với định dạng mm/dd, chúng tôi sẽ chuyển đổi nó thành dấu thời gian Unix. Sau đó, chúng tôi sẽ chuyển đổi lại thành đối tượng
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6 và chuyển đổi ngược lại thành chuỗi bằng cách sử dụng một số mẫu strftime khác nhau để kiểm soát đầu raimport pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
72import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
73Đây là một hình ảnh mà bạn có thể lưu với một bảng gian lận cho các mẫu strptime và strftime phổ biến, hữu ích
Hãy thực hành thêm một chút bằng cách sử dụng những
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
74import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
75Xử lý múi giờ
Làm việc với ngày và giờ trong Python thậm chí có thể phức tạp hơn khi có sự tham gia của các múi giờ. Rất may, mô-đun
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
627 đã tồn tại để giúp chúng tôi xử lý các lượt chuyển đổi giữa các múi giờ. Nó cũng xử lý thời gian tiết kiệm ánh sáng ban ngày ở những địa điểm sử dụngChúng ta có thể sử dụng hàm
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
628 để thêm vị trí múi giờ vào đối tượng datetime trong Python. Sau đó, chúng ta có thể sử dụng hàm import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
629 để chuyển đổi múi giờ địa phương hiện có thành bất kỳ múi giờ nào khác mà chúng ta chỉ định [hàm này lấy múi giờ mà chúng ta muốn chuyển đổi thành đối số]Ví dụ
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
76import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
77Mô-đun này có thể giúp đơn giản hóa cuộc sống khi làm việc với các tập dữ liệu bao gồm nhiều múi giờ khác nhau
Làm việc với các đối tượng Datetime của gấu trúc
Các nhà khoa học dữ liệu yêu thích
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
630 vì nhiều lý do. Một trong số đó là nó chứa các khả năng và tính năng mở rộng để làm việc với dữ liệu chuỗi thời gian. Giống như print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6 chính nó, gấu trúc có cả hai đối tượng print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6 và import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
608 để chỉ định ngày, giờ và thời lượng tương ứngChúng ta có thể chuyển đổi các chuỗi văn bản ngày, giờ và thời lượng thành các đối tượng Datetime của gấu trúc bằng cách sử dụng các hàm này
- to_datetime[]. Chuyển đổi chuỗi ngày và giờ thành các đối tượng ngày giờ trong Python
- to_timedelta[]. Tìm sự khác biệt về thời gian theo ngày, giờ, phút và giây
Và như chúng ta sẽ thấy, các hàm này thực sự khá tốt trong việc chuyển đổi các chuỗi thành các đối tượng datetime của Python bằng cách tự động phát hiện định dạng của chúng mà không cần chúng ta xác định nó bằng các mẫu strftime
Hãy xem một ví dụ nhanh
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
78import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["year_month"] = df["datetime"].dt.strftime['%Y-%m']
"""
Output:
datetime year_month
0 2022-08-30 09:00:00 2022-08
1 2022-08-31 09:00:00 2022-08
2 2022-09-01 09:00:00 2022-09
3 2022-09-02 09:00:00 2022-09
"""
79Lưu ý rằng mặc dù chúng tôi đã đặt cho nó một chuỗi có một số yếu tố phức tạp như “th” và “sep” thay vì “Sep. ” hoặc “Tháng 9”, pandas có thể phân tích chuỗi chính xác và trả về ngày đã định dạng
Chúng ta cũng có thể sử dụng pandas [và một số chức năng numpy liên kết của nó] để tự động tạo phạm vi ngày dưới dạng pandas Series. Ví dụ: bên dưới, chúng tôi tạo một chuỗi mười hai ngày bắt đầu từ ngày chúng tôi đã xác định ở trên. Sau đó, chúng tôi tạo một chuỗi ngày khác bắt đầu từ một ngày được xác định trước bằng cách sử dụng
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
634print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
0print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
1Nhận Năm, Tháng, Ngày, Giờ, Phút trong gấu trúc
Chúng ta có thể dễ dàng lấy năm, tháng, ngày, giờ hoặc phút từ các ngày trong một cột của khung dữ liệu gấu trúc bằng cách sử dụng thuộc tính
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
635 cho tất cả các cột. Ví dụ: chúng ta có thể sử dụng import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
636 để chỉ trích xuất năm từ cột gấu trúc bao gồm ngày đầy đủĐể khám phá điều này, hãy tạo một DataFrame nhanh bằng cách sử dụng một trong các Chuỗi mà chúng tôi đã tạo ở trên
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
2ngày02019-08-1012019-08-1122019-08-1232019-08-1342019-08-14
Bây giờ, hãy tạo các cột riêng biệt cho từng thành phần của ngày tháng bằng cách sử dụng thuộc tính ngày giờ [được truy cập bằng
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
635] trong Python có liên quanprint['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
3ngàynămthángngàygiờphút02019-08-1020198100012019-08-1120198110022019-08-1220198120032019-08-1320198130042019-08-14201981400
Nhận ngày trong tuần và ngày trong năm
Pandas cũng có khả năng lấy các yếu tố khác, như ngày trong tuần và ngày trong năm, từ các đối tượng ngày giờ của nó. Một lần nữa, chúng ta có thể sử dụng thuộc tính
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
635 để làm điều này. Lưu ý rằng ở đây, như trong Python nói chung, tuần bắt đầu vào Thứ Hai ở chỉ số 0, vì vậy ngày trong tuần thứ 5 là Thứ Bảyprint['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
4ngàynămthángngàygiờphúttuầndayday_namedayofyear02019-08-102019810005Saturday22212019-08-112019811006Chủ nhật22322019-08-122019812000Monday22432019-08-132019813001Tuesday225920140202W6ed28W
Chuyển đổi đối tượng ngày thành chỉ mục DataFrame
Chúng tôi cũng có thể sử dụng gấu trúc để tạo cột ngày giờ thành chỉ mục của Khung dữ liệu của chúng tôi. Điều này có thể rất hữu ích cho các tác vụ như trực quan hóa dữ liệu khám phá, vì matplotlib sẽ nhận ra rằng chỉ mục DataFrame là một chuỗi thời gian và vẽ dữ liệu tương ứng
Để làm điều này, tất cả những gì chúng ta phải làm là xác định lại
import pandas as pd
df = pd.DataFrame[
columns=["datetime"],
data=pd.date_range["30/8/2022 09:00:00", periods=4, freq="D"]]
df["month_number"] = df["datetime"].dt.month
"""
Output:
datetime month_number
0 2022-08-30 09:00:00 8
1 2022-08-31 09:00:00 8
2 2022-09-01 09:00:00 9
3 2022-09-02 09:00:00 9
"""
639print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
5dateyearmonthdayhourminuteweekdayday_namedayofyeardate2019-08-102019-08-102019810005Saturday2222019-08-112019-08-112019811006Sunday2232019-08-122019-08-122019812000Monday2242019-08-132019-08-132019813001Tuesday2252019-08-142019-08-142019814002Wednesday226
Sự kết luận
Trong hướng dẫn này, chúng ta đã tìm hiểu sâu về thời gian của Python và cũng đã thực hiện một số công việc với gấu trúc và mô-đun lịch. Chúng tôi đã đề cập rất nhiều, nhưng hãy nhớ. cách tốt nhất để học điều gì đó là thực sự tự viết mã
Nếu bạn muốn thực hành viết mã
print['Month: ', my_date.month] # To Get month from date
print['Year: ', my_date.year] # To Get month from year
6 với tính năng kiểm tra câu trả lời tương tác, hãy xem khóa học Python trung cấp của chúng tôi để biết bài học về datetime trong Python với tính năng kiểm tra câu trả lời tương tác và chạy mã trong trình duyệt