Skip to content

Selecting & Filtering

การเลือกและกรองข้อมูลคือทักษะที่จะใช้บ่อยที่สุดในการวิเคราะห์ข้อมูล pandas มีหลายวิธี แต่ละวิธีเหมาะกับสถานการณ์ต่างกัน

import pandas as pd
df = pd.DataFrame({
"product": ["เสื้อ", "กางเกง", "รองเท้า"],
"price": [350, 590, 1200],
"qty": [10, 5, 3],
"category": ["เสื้อผ้า", "เสื้อผ้า", "รองเท้า"]
})
# เลือก 1 column → ได้ Series
prices = df["price"]
# เลือกหลาย columns → ได้ DataFrame
subset = df[["product", "price"]]

Boolean Masks — กรองข้อมูล

Section titled “Boolean Masks — กรองข้อมูล”
# สร้าง mask (True/False สำหรับแต่ละแถว)
mask = df["price"] > 400
print(mask)
# 0 False
# 1 True
# 2 True
# ใช้ mask กรอง
expensive = df[mask]
# หรือเขียนรวมบรรทัดเดียว
expensive = df[df["price"] > 400]
# หลายเงื่อนไข — ใช้ & (and), | (or), ~ (not)
filtered = df[(df["price"] > 300) & (df["category"] == "เสื้อผ้า")]

.loc — เลือกด้วย label

Section titled “.loc — เลือกด้วย label”
# .loc[row_label, col_label]
df.loc[0, "product"] # "เสื้อ"
df.loc[0:1, "product"] # แถว 0 ถึง 1 (inclusive!)
df.loc[mask, ["product", "price"]] # ใช้ร่วมกับ mask

.iloc — เลือกด้วยตำแหน่ง (integer)

Section titled “.iloc — เลือกด้วยตำแหน่ง (integer)”
# .iloc[row_position, col_position]
df.iloc[0, 1] # 350 (แถวที่ 0, คอลัมน์ที่ 1)
df.iloc[0:2, 0:2] # 2 แถวแรก, 2 คอลัมน์แรก (exclusive!)
df.iloc[-1] # แถวสุดท้าย
# กรองด้วยข้อความ
df[df["product"].str.contains("เสื้อ")]
df[df["category"].isin(["เสื้อผ้า", "รองเท้า"])]