Làm cách nào để tạo phạm vi ngày trong python?

Tạo phạm vi ngày với Pandas có thể tăng tốc đáng kể quy trình làm việc của bạn khi bạn cần lặp lại một số ngày. Ví dụ: khi chạy truy vấn trên API hoặc cơ sở dữ liệu, chúng tôi có thể cần tạo danh sách ngày có thể lặp lại. Đây có thể là một nhiệm vụ tốn thời gian, nhưng may mắn thay, chúng ta có thể dễ dàng thực hiện điều này với Pandas

Mục lục

Hàm phạm vi ngày của gấu trúc

Hãy xem hàm Pandas date_range có sẵn trong Pandas. Với mục đích của hướng dẫn này, chúng ta sẽ xem xét số lượng tham số đã giảm

pd.date_range[
   start=None, 
   end=None, 
   periods=None, 
   freq=None
]
  • Các tham số bắt đầu và kết thúc tìm kiếm các chuỗi hoặc các đối tượng giống như ngày giờ
  • Tham số thời gian xác định số lượng thời gian để tạo
  • Tham số tần số xác định số lượng thời gian để tạo

Tạo phạm vi ngày đầu tiên của chúng tôi

Giả sử chúng tôi muốn tạo một danh sách đầu tiên của tháng hàng tháng vào năm 2020. Chúng ta có thể viết đoạn mã sau

import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']

Chúng tôi sử dụng tần suất của MS để báo hiệu rằng chúng tôi muốn quay lại đầu tháng. Điều này sẽ tạo ra một danh sách chứa những điều sau đây

DatetimeIndex [['2020-01-01', '2020-02-01', '2020-03-01', '2020-04-01', '2020-05-01', '2020-06-01', '2020-07-01', '2020-08-01',               '2020-09-01', '2020-10-01', '2020-11-01', '2020-12-01'],             
dtype='datetime64[ns]', freq='MS'] 

Mỗi mục trong này là một đối tượng datetime. Nếu chúng tôi muốn tạo chuỗi này thành một chuỗi, chúng tôi có thể lặp lại từng mục. Đối với điều này, chúng ta có thể sử dụng vòng lặp for, như hình bên dưới

import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
list2020 = []
for i in first2020:
  list2020.append[i.strftime['%Y-%m-%d']]

Điều này trả về một danh sách chứa

['2020-01-01', '2020-02-01', '2020-03-01', '2020-04-01', '2020-05-01', '2020-06-01', '2020-07-01', '2020-08-01', '2020-09-01',
 '2020-10-01', '2020-11-01', '2020-12-01']

Tương tự, bạn có thể viết lại toàn bộ mã dưới dạng hiểu danh sách

import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
list2020 = [i.strftime['%Y-%m-%d'] for i in first2020]

Một số tần số hữu ích khác

Chúng tôi có thể muốn sử dụng một số tần số khác

  • B. tần suất ngày làm việc
  • D. tần suất ngày dương lịch
  • W. tần suất hàng tuần
  • M. tần suất cuối tháng

Phần kết luận. Tạo phạm vi ngày với Pandas

Trong bài đăng này, chúng tôi đã học cách tạo phạm vi ngày tiện dụng với Pandas bằng Python. Đó là một cách tiện dụng và nhanh chóng để giúp tạo các đối tượng có thể lặp lại để truy vấn API và cơ sở dữ liệu. Bạn có thể tìm hiểu thêm về chức năng này bằng cách truy cập tài liệu chính thức

Chúng tôi sẽ giới thiệu một số phương pháp để tạo danh sách một loạt các ngày. Một cách để làm như vậy là sử dụng thư viện

import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
5. Pandas có hỗ trợ trực tiếp để đạt được nhiệm vụ. Một cách khác là thiết kế logic của riêng bạn theo cách thủ công bằng cách sử dụng vòng lặp for để tạo ngày tháng

Chúng ta sẽ xem xét một số ví dụ như tạo danh sách phạm vi ngày theo ngày bắt đầu nhập và k ngày sau đó hoặc chúng ta có thể nhập ngày bắt đầu và ngày kết thúc

Sử dụng Pandas để tạo danh sách phạm vi ngày trong Python

Chúng ta sẽ sử dụng hàm

import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
6 của pandas trong đó chúng ta sẽ chuyển ngày bắt đầu và số ngày sau đó [được gọi là khoảng thời gian]. Ở đây chúng tôi cũng đã sử dụng thư viện
import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
7 để định dạng ngày để chúng tôi có thể xuất ngày ở định dạng này
import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
8. Chúng tôi cũng có thể xác định dấu thời gian cùng với ngày

Mã Ví dụ

Trong ví dụ này, chúng tôi đang chuyển ngày bắt đầu ở định dạng

import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
8 và dấu chấm. Vì vậy, ở đầu ra, chúng ta có thể thấy danh sách phạm vi ngày bắt đầu từ ngày bắt đầu và số
Index[['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021'], dtype='object']
1 sau đó

# python 3.x
import datetime
import pandas as pd
start = datetime.datetime.strptime["01-12-2021", "%d-%m-%Y"]
date_generated = pd.date_range[start, periods=5]
print[date_generated.strftime["%d-%m-%Y"]]

đầu ra

Index[['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021'], dtype='object']

Bây giờ chúng ta sẽ xem xét một ví dụ khác trong đó chúng ta sẽ vượt qua

Index[['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021'], dtype='object']
2 và
Index[['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021'], dtype='object']
3. Chương trình sẽ xuất phạm vi ngày giữa hai ngày này

import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
1

đầu ra

import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
2

Với sự trợ giúp của vòng lặp for và

Index[['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021'], dtype='object']
4, chúng ta có thể tạo danh sách theo cách thủ công.
Index[['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021'], dtype='object']
4 là một hàm được định nghĩa trong thư viện
import pandas as pd
first2020 = pd.date_range[start='2020-01-01', end='2020-12-01', freq='MS']
7. Ở đây delta có nghĩa là sự khác biệt. Với sự trợ giúp của nó, chúng ta có thể cộng hoặc trừ delta với một ngày để có được ngày tiếp theo hoặc ngày trước đó, tương ứng. Giả sử chúng ta có một ngày 01-12-2021. Bây giờ, nếu chúng ta thêm 1 vào nó, ngày của chúng ta sẽ là 02-12-2021. Chúng ta sẽ sử dụng logic đó trong vòng lặp for. Vòng lặp for được lặp lại và chúng tôi sẽ thêm biến có ngày bắt đầu để có ngày tiếp theo, sau đó chúng tôi nối ngày được tạo hiện tại vào danh sách của mình cho đến khi chúng tôi nhận được phạm vi ngày hoàn chỉnh

Làm cách nào để tạo danh sách ngày giữa hai ngày trong Python?

nhập gấu trúc từ datetime nhập datetime, timedelta startDate = datetime[2022, 6, 1] endDate = datetime[2022, 6, 10] # Getting List of Days using pandas datesRange = pandas. date_range[startDate,endDate-timedelta[days=1],freq='d'] print[datesRange];

Cách lấy phạm vi ngày trong Pandas?

Để chọn các hàng giữa hai ngày trong DataFrame của gấu trúc, trước tiên, hãy tạo mặt nạ boolean bằng mask = [df['InsertedDates'] > start_date] & [df[' . Sau đó, bạn chọn DataFrame nằm trong phạm vi sử dụng DataFrame. . Then you select the DataFrame that lies within the range using the DataFrame.

Chủ Đề