วิธีลบแถวที่ซ้ำกันใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *