ภาพรวม
ใช้ drop_duplicates() ลบแถวที่ซ้ำกันทั้งแถว (ทุกคอลัมน์เหมือนกัน) หรือระบุ subset ของคอลัมน์
ตัวอย่างโค้ด
import pandas as pd
dataFrame = pd.DataFrame({
'Car': ['BMW', 'Mercedes', 'Lamborghini', 'BMW', 'Mercedes', 'Porsche'],
'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Delhi', 'Hyderabad', 'Mumbai'],
'UnitsSold': [95, 70, 80, 95, 70, 90]
})
print("Dataframe...\n", dataFrame)
# นับก่อนลบ
count_before = dataFrame['Car'].value_counts()
print("\nCount in column Car before:")
print(count_before)
# ลบ duplicates (ทั้งแถว)
dataFrame = dataFrame.drop_duplicates()
print("\nUpdated DataFrame after removing duplicates...\n", dataFrame)
# นับหลังลบ
count_after = dataFrame['Car'].value_counts()
print("\nCount in column Car after:")
print(count_after)
ผลลัพธ์
Dataframe...
Car Place UnitsSold
0 BMW Delhi 95
1 Mercedes Hyderabad 70
2 Lamborghini Chandigarh 80
3 BMW Delhi 95
4 Mercedes Hyderabad 70
5 Porsche Mumbai 90
Count in column Car before:
BMW 2
Mercedes 2
Porsche 1
Lamborghini 1
Updated DataFrame after removing duplicates...
Car Place UnitsSold
0 BMW Delhi 95
1 Mercedes Hyderabad 70
2 Lamborghini Chandigarh 80
5 Porsche Mumbai 90
Count in column Car after:
BMW 1
Mercedes 1
Porsche 1
Lamborghini 1
พารามิเตอร์สำคัญของ drop_duplicates()
# ลบแถวซ้ำทั้งหมด (default)
df.drop_duplicates()
# ระบุ subset คอลัมน์ที่ใช้เปรียบเทียบ
df.drop_duplicates(subset=['Car', 'Place'])
# เก็บ first/last occurrence
df.drop_duplicates(keep='first') # default
df.drop_duplicates(keep='last') # เก็บตัวสุดท้าย
df.drop_duplicates(keep=False) # ลบทิ้งทั้งหมดที่ซ้ำ
# Inplace
df.drop_duplicates(inplace=True)
สรุป
- Default: เปรียบเทียบทุกคอลัมน์, keep='first'
- ใช้ subset เพื่อ define "duplicate" ตาม business logic
- reset_index() หลังลบถ้าต้องการ index เรียงใหม่