Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Truy vấn cột DataFrame với query()

Để 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").values truy 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).