Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas - กรอง DataFrame ระหว่างสองวันที่

ใช้ DataFrame.loc[] กับเงื่อนไขวันที่ เพื่อกรองแถวที่อยู่ในช่วงวันที่ที่กำหนด

ตัวอย่างโค้ด

import pandas as pd

d = {'Car': ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
     'Date_of_Purchase': ['2021-07-10', '2021-08-12', '2021-06-17', '2021-03-16', '2021-02-19', '2021-08-22']}

dataFrame = pd.DataFrame(d)
print("DataFrame...\n", dataFrame)

# Filter between 2021-05-10 and 2021-08-25
resDF = dataFrame.loc[(dataFrame["Date_of_Purchase"] >= "2021-05-10") & 
                       (dataFrame["Date_of_Purchase"] <= "2021-08-25")]

print("\nCars purchased between 2 dates:\n", resDF)

ผลลัพธ์

Cars purchased between 2 dates:
     Car Date_of_Purchase
0    BMW       2021-07-10
1  Lexus       2021-08-12
2   Audi       2021-06-17
5 Bentley       2021-08-22

คำอธิบาย

  • คอลัมน์วันที่เป็น String รูปแบบ ISO (YYYY-MM-DD) เปรียบเทียบได้โดยตรง
  • ใช้ & (Bitwise AND) รวมเงื่อนไข ต้องใส่วงเล็บครอบแต่ละเงื่อนไข
  • loc[] คืน DataFrame ที่กรองแล้ว
  • แนะนำ: แปลงคอลัมน์เป็น datetime ด้วย pd.to_datetime() ก่อนกรองเพื่อความปลอดภัย