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

เลือกแถวที่มีข้อความเฉพาะใน Pandas DataFrame ด้วย str.contains()

เมื่อต้องการกรองแถวใน 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 สำหรับไม่สนใจพิมพ์ใหญ่เล็ก