Để truy vấn/lọc cột DataFrame Pandas, dùng phương thức query(). Tạo DataFrame sản phẩm:
dataFrame = pd.DataFrame({
"Product": ["SmartTV", "PenDrive", "Speaker", "Earphone"],
"Opening_Stock": [300, 700, 1200, 1500],
"Closing_Stock": [200, 500, 1000, 900]
})
Truy vấn với điều kiện
dataFrame.query('Opening_Stock >= 500 & Closing_Stock < 1000 & Product.str.startswith("P").values')
Ví dụ hoàn chỉnh
import pandas as pd
dataFrame = pd.DataFrame({
"Product": ["SmartTV", "PenDrive", "Speaker", "Earphone"],
"Opening_Stock": [300, 700, 1200, 1500],
"Closing_Stock": [200, 500, 1000, 900]
})
print("DataFrame...\n", dataFrame)
# query lọc
print("\nKết quả query:")
print(dataFrame.query('Opening_Stock >= 500 & Closing_Stock < 1000 & Product.str.startswith("P").values'))
Kết quả đầu ra
DataFrame... Closing_Stock Opening_Stock Product 0 200 300 SmartTV 1 500 700 PenDrive 2 1000 1200 Speaker 3 900 1500 Earphone Kết quả query: Closing_Stock Opening_Stock Product 1 500 700 PenDrive
Giải thích
query()nhận chuỗi biểu thức boolean.&là AND (không dùng 'and').Product.str.startswith("P").valuestruy cập mảng numpy boolean cho điều kiện string.- Chỉ PenDrive thỏa: Opening_Stock=700≥500, Closing_Stock=500<1000, bắt đầu bằng 'P'.
Lưu ý: query() nhanh hơn boolean indexing cho DataFrame lớn nhờ numexpr. Tránh dùng biến cục bộ trong chuỗi query (dùng @variable).