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

Query คอลัมน์ Pandas DataFrame ด้วย query()

แนวคิด

DataFrame.query(expr) กรองแถวด้วย expression string อ่านง่ายกว่า boolean indexing สำหรับเงื่อนไขซับซ้อน

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

import pandas as pd

df = pd.DataFrame({
    "Product": ["SmartTV", "PenDrive", "Speaker", "Earphone"],
    "Opening_Stock": [300, 700, 1200, 1500],
    "Closing_Stock": [200, 500, 1000, 900]
})

print("DataFrame:\n", df)

# Query: Opening_Stock >= 500 AND Closing_Stock < 1000 AND Product เริ่มต้นด้วย 'P'
queried = df.query('Opening_Stock >= 500 and Closing_Stock < 1000 and Product.str.startswith("P")')
print("\nQuery result:\n", queried)

ผลลัพธ์

DataFrame:
  Closing_Stock  Opening_Stock     Product
0           200            300      SmartTV
1           500            700     PenDrive
2          1000           1200      Speaker
3           900           1500     Earphone

Query result:
  Closing_Stock  Opening_Stock  Product
1           500            700  PenDrive

Syntax สำคัญ

  • ชื่อคอลัมน์ที่มีช่องว่าง/ตัวอักษรพิเศษ ใช้ backtick: `Column Name`
  • เข้าถึง string methods: Product.str.startswith("P")
  • ใช้ตัวแปรภายนอก: @variable_name (เช่น @threshold)
  • operators: and, or, not, in, ==, !=, >, < ฯลฯ

ประสิทธิภาพ

query() ใช้ numexpr engine (ถ้ามี) เร็วกว่า boolean indexing สำหรับ DataFrame ใหญ่ (>100k rows)