วิธีลบแถวที่ซ้ำกันใน pandas dataframe
วิธีที่ง่ายที่สุดในการลบแถวที่ซ้ำกันใน DataFrame ของ pandas คือการใช้ฟังก์ชัน drop_duplicates() ซึ่งใช้ไวยากรณ์ต่อไปนี้:
df.drop_duplicates(subset=None, keep=’first’, inplace=False)
ทอง:
- เซ็ตย่อย: คอลัมน์ใดที่ต้องคำนึงถึงเพื่อระบุรายการที่ซ้ำกัน ค่าเริ่มต้นคือคอลัมน์ทั้งหมด
- Keep: ระบุรายการที่ซ้ำกัน (ถ้ามี) ที่จะเก็บไว้
- อันดับแรก: ลบบรรทัดที่ซ้ำกันทั้งหมดยกเว้นบรรทัดแรก
- ล่าสุด: ลบบรรทัดที่ซ้ำกันทั้งหมด ยกเว้นบรรทัดสุดท้าย
- เท็จ : ลบรายการที่ซ้ำกันทั้งหมด
- inplace: ระบุว่าจะลบรายการที่ซ้ำกันหรือส่งคืนสำเนาของ DataFrame
บทช่วยสอนนี้มีตัวอย่างการใช้งานจริงของฟังก์ชันนี้บน DataFrame ต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({'team': ['a', 'b', 'b', 'c', 'c', 'd'], 'points': [3, 7, 7, 8, 8, 9], 'assists': [8, 6, 7, 9, 9, 3]}) #display DataFrame print (df) team points assists 0 to 3 8 1 b 7 6 2 b 7 7 3 c 8 9 4 c 8 9 5 d 9 3
ตัวอย่างที่ 1: ลบรายการที่ซ้ำกันในทุกคอลัมน์
รหัสต่อไปนี้แสดงวิธีลบแถวที่มีค่าซ้ำกันใน ทุก คอลัมน์:
df. drop_duplicates ()
team points assists
0 to 3 8
1 b 7 6
2 b 7 7
3 c 8 9
5 d 9 3
ตามค่าเริ่มต้น ฟังก์ชัน drop_duplicates() จะลบรายการที่ซ้ำกันทั้งหมดยกเว้นรายการแรก
อย่างไรก็ตาม เราสามารถใช้อาร์กิวเมนต์ Keep=False เพื่อลบรายการที่ซ้ำกันทั้งหมดออกได้:
df. drop_duplicates (keep= False ) team points assists 0 to 3 8 1 b 7 6 2 b 7 7 5 d 9 3
ตัวอย่างที่ 2: ลบรายการที่ซ้ำกันในคอลัมน์ที่ระบุ
รหัสต่อไปนี้แสดงวิธีลบแถวที่มีค่าซ้ำกันเฉพาะในคอลัมน์ที่มีป้ายกำกับ ทีม และ คะแนน :
df. drop_duplicates (subset=[' team ', ' points ']) team points assists 0 to 3 8 1 b 7 6 3 c 8 9 5 d 9 3
แหล่งข้อมูลเพิ่มเติม
วิธีลบคอลัมน์ที่ซ้ำกันใน Pandas
วิธีจัดเรียงค่าใน Pandas DataFrame
วิธีกรอง Pandas DataFrame ในหลายเงื่อนไข
วิธีแทรกคอลัมน์ลงใน Pandas DataFrame