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

เขียนโปรแกรม Python ลบแถวซ้ำแถวแรก (keep last) ใน DataFrame

สมมติว่าคุณมี DataFrame ที่มีแถวซ้ำกัน และต้องการลบแถวซ้ำแถวแรก (เก็บแถวสุดท้ายไว้)

วิธีแก้ปัญหา

  1. สร้าง DataFrame ที่มีข้อมูลซ้ำ
  2. ใช้ df.drop_duplicates(subset=['Id', 'Age'], keep='last')

ตัวอย่างโค้ด

import pandas as pd

df = pd.DataFrame({'Id': [1, 2, 3, 4, 5, 6, 2, 7, 3, 9, 10],
                   'Age': [12, 13, 14, 13, 14, 12, 13, 16, 14, 15, 14]})

print("DataFrame ต้นฉบับ:\n", df)

# ลบแถวซ้ำ โดยเก็บแถวสุดท้าย (keep='last')
df = df.drop_duplicates(subset=['Id', 'Age'], keep='last')
print("\nDataFrame หลังลบแถวซ้ำแถวแรก:")
print(df)

ผลลัพธ์

DataFrame ต้นฉบับ:
    Id  Age
0    1   12
1    2   13
2    3   14
3    4   13
4    5   14
5    6   12
6    2   13
7    7   16
8    3   14
9    9   15
10  10   14

DataFrame หลังลบแถวซ้ำแถวแรก:
    Id  Age
0    1   12
3    4   13
4    5   14
5    6   12
6    2   13
7    7   16
8    3   14
9    9   15
10  10   14

คำอธิบาย:

  • subset=['Id', 'Age']: ตรวจสอบค่าซ้ำจากคอลัมน์ Id และ Age ร่วมกัน
  • keep='last': เก็บแถวสุดท้ายของกลุ่มที่ซ้ำกัน ลบแถวแรกๆ ออก
  • keep='first' (default): เก็บแถวแรก ลบแถวต่อไป
  • keep=False: ลบแถวที่ซ้ำทั้งหมดทิ้ง