เมื่อต้องการกรองแถวใน DataFrame ที่คอลัมน์ข้อความมีคำหรือข้อความเฉพาะ ใช้เมธอด str.contains() ร่วมกับ boolean indexing
ตัวอย่างโค้ด
import pandas as pd
# สมมติอ่านไฟล์ CSV (ที่นี่สร้าง DataFrame ตัวอย่างแทน)
data = {
'Car': ['Audi', 'Porsche', 'RollsRoyce', 'BMW', 'Mercedes', 'Lamborghini', 'Audi', 'Mercedes', 'Lamborghini'],
'Place': ['Bangalore', 'Mumbai', 'Pune', 'Delhi', 'Hyderabad', 'Chandigarh', 'Mumbai', 'Pune', 'Delhi'],
'UnitsSold': [80, 110, 100, 95, 80, 80, 100, 120, 100]
}
df = pd.DataFrame(data)
print("DataFrame ต้นฉบับ:\n", df)
# กรองแถวที่คอลัมน์ Car มีคำว่า 'BMW'
bmw_rows = df[df['Car'].str.contains('BMW')]
print("\nแถวที่มีคำว่า BMW:\n", bmw_rows)
ผลลัพธ์
DataFrame ต้นฉบับ:
Car Place UnitsSold
0 Audi Bangalore 80
1 Porsche Mumbai 110
2 RollsRoyce Pune 100
3 BMW Delhi 95
4 Mercedes Hyderabad 80
5 Lamborghini Chandigarh 80
6 Audi Mumbai 100
7 Mercedes Pune 120
8 Lamborghini Delhi 100
แถวที่มีคำว่า BMW:
Car Place UnitsSold
3 BMW Delhi 95
เมธอด str.contains() รองรับ Regular Expression และพารามิเตอร์เพิ่มเติม เช่น case=False สำหรับไม่สนใจพิมพ์ใหญ่เล็ก