Cách kiểm tra xem một ngày có nằm giữa hai ngày trong python không

Hãy xem cách chọn/lọc các hàng giữa hai ngày trong Pandas DataFrame, trong các ứng dụng thời gian thực, bạn thường được yêu cầu chọn các hàng giữa hai ngày (tương tự như ngày bắt đầu và nhỏ hơn ngày kết thúc), Trong gấu trúc, . t. c

Trong bài viết này, tôi sẽ giải thích cách chọn các hàng DataFrame của gấu trúc giữa hai ngày bằng cách sử dụng mặt nạ boolean với phương thức import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 9 và lập chỉ mục DataFrame. Bạn cũng có thể sử dụng các phương pháp Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 0, Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 1 và Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 2. Các phương pháp này được sử dụng để chọn hàng dựa trên ngày trong Pandas

1. Ví dụ nhanh về chọn hàng giữa hai ngày

Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách chọn hàng giữa hai ngày từ DataFrame

# Below are quick example # Select DataFrame rows between two dates mask = (df['InsertedDates'] > start_date) & (df['InsertedDates'] <= end_date) df2 = df.loc[mask] # Using pandas.DataFrame.loc[] to Filter Rows by Dates df2 = df.loc[between_two_dates] # Using pandas.DataFrame.query() to select DataFrame Rows start_date = '2021-11-15' end_date = '2021-11-18' df2 = df.query('InsertedDates >= @start_date and InsertedDates <= @end_date') # Select rows between two dates using DataFrame.query() start_date = '2021-11-15' end_date = '2021-11-18' df2 = df.query('InsertedDates > @start_date and InsertedDates < @end_date') # pandas.Series.between() function Using two dates df2 = df.loc[df["InsertedDates"].between("2021-11-16", "2021-11-18")] # Select DataFrame rows between two dates using DataFrame.isin() df2 = df[df["InsertedDates"].isin(pd.date_range("2021-11-15", "2021-11-17"))]

Bây giờ, hãy tạo một DataFrame với một vài hàng và cột, thực hiện các ví dụ này và xác thực kết quả. Khung dữ liệu của chúng tôi chứa các tên cột Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 3, Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 4, Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 5, Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 6 và Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 7

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df)

Sản lượng dưới sản lượng

Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20

2. Chọn các hàng trong khung dữ liệu giữa hai ngày

Để 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 cách sử dụng Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 8 để biểu thị thời điểm bắt đầu và kết thúc của phạm vi ngày. Sau đó, bạn chọn DataFrame nằm trong phạm vi bằng cách sử dụng phương pháp Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 9

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 7

Sản lượng dưới sản lượng. Điều này trả về các hàng lớn hơn và nhỏ hơn ngày đã chọn

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 8

3. Lọc hàng theo ngày bằng DataFrame. loc[] Phương pháp

Sử dụng phương thức Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 9 để trả về một mảng boolean với import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 71 ane import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 72 (ngày nằm trong khoảng từ ngày 15 đến ngày 19 tháng 9). Sau đó, hàm loc[] chỉ trả về những hàng có giữa hai ngày

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 2

Sản lượng dưới sản lượng

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 3

4. Chọn hàng giữa hai ngày bằng DataFrame. truy vấn()

Bạn cũng có thể chọn các hàng DataFrame giữa hai ngày trong Pandas bằng phương pháp import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 73. Phương thức này trả về kết quả DataFrame từ biểu thức truy vấn được cung cấp. Ví dụ import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 74

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 6

Sản lượng dưới sản lượng

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 7

Nếu bạn không muốn bao gồm các ranh giới, chỉ cần thay đổi điều kiện như bên dưới theo cú pháp. import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 75

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 9

Sản lượng dưới sản lượng

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 0

5. sử dụng gấu trúc. Loạt. giữa () đến hai ngày

Bạn có thể sử dụng phương pháp Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 2 để chọn các hàng DataFrame giữa hai ngày. Phương thức này trả về một vectơ boolean biểu thị liệu phần tử chuỗi có nằm trong phạm vi đã chỉ định hay không. Chúng ta phải chuyển vectơ boolean thu được cho DataFrame. phương thức loc() để trích xuất DataFrame

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 1

Sản lượng dưới sản lượng

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 2

6. Chọn các hàng DataFrame giữa hai ngày bằng DataFrame. trong()

Sử dụng import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 77 để lọc các hàng DataFrame dựa trên ngày trong Pandas. import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 78 trả về một DateTime Index cố định. Tham số thứ nhất và thứ hai của nó là ngày bắt đầu và ngày kết thúc

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 3

Sản lượng dưới sản lượng

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 4

7. Hoàn thành ví dụ để chọn hàng giữa hai ngày

import pandas as pd technologies = ({ 'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark"], 'Fee' :[22000,25000,23000,24000,26000,25000,25000], 'Duration':['30days','50days','55days','40days','60days','35days','55days'], 'Discount':[1000,2300,1000,1200,2500,1300,1400], 'InsertedDates':["2021-11-14","2021-11-15","2021-11-16","2021-11-17","2021-11-18","2021-11-19","2021-11-20"] }) df = pd.DataFrame(technologies) print(df) 5

Phần kết luận

Trong bài viết này, bạn đã học cách chọn các hàng DataFrame giữa hai ngày trong gấu trúc bằng cách sử dụng Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 9, Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 0, Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 1 và Courses Fee Duration Discount InsertedDates 0 Spark 22000 30days 1000 2021-11-14 1 PySpark 25000 50days 2300 2021-11-15 2 Hadoop 23000 55days 1000 2021-11-16 3 Python 24000 40days 1200 2021-11-17 4 Pandas 26000 60days 2500 2021-11-18 5 Hadoop 25000 35days 1300 2021-11-19 6 Spark 25000 55days 1400 2021-11-20 2 với nhiều ví dụ hơn

Làm cách nào để so sánh 2 datetime trong Python?

Sử dụng các toán tử so sánh (như < , > , , v.v. ) để so sánh ngày tháng trong Python . Ví dụ: datetime_1 > datetime_2 để kiểm tra xem datetime_1 có lớn hơn datetime_2 không. Nếu bạn chỉ muốn so sánh ngày tháng của đối tượng DateTime, hãy sử dụng phương thức date() để chỉ trích xuất phần ngày tháng từ đối tượng datetime.

Làm cách nào để kiểm tra phạm vi ngày giờ trong Python?

Ví dụ. Đầu vào. test_list = [datetime(2019, 12, 30), datetime(2018, 4, 4), datetime(2016, 12, 21), datetime(2021, 2, 2), datetime(2020, 2, 3), datetime( .
đầu ra. .
đầu ra

Chủ đề