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

ลบแถวที่คอลัมน์ K มีค่าซ้ำ (Remove Rows for Similar Kth Column Element)

แนวคิด

จาก matrix ให้ลบแถวที่คอลัมน์ K (0-based) มีค่าซ้ำกัน เก็บแถวแรกที่เจอของแต่ละค่าในคอลัมน์ K

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

my_list = [[45, 95, 26], [70, 35, 74], [87, 65, 23], [70, 35, 74], [67, 85, 12], [45, 65, 0]]
print("Matrix:", my_list)

K = 1  # คอลัมน์ที่ 1 (index 1)
print("K =", K)

result = []
seen = set()

for row in my_list:
    key = row[K]
    if key not in seen:
        result.append(row)
        seen.add(key)

print("หลังลบแถวที่คอลัมน์ K ซ้ำ:", result)

ผลลัพธ์

Matrix: [[45, 95, 26], [70, 35, 74], [87, 65, 23], [70, 35, 74], [67, 85, 12], [45, 65, 0]]
K = 1
หลังลบแถวที่คอลัมน์ K ซ้ำ: [[45, 95, 26], [70, 35, 74], [87, 65, 23], [67, 85, 12]]

คำอธิบาย

  • แถว 0: col[1]=95 -> ใหม่ -> เก็บ
  • แถว 1: col[1]=35 -> ใหม่ -> เก็บ
  • แถว 2: col[1]=65 -> ใหม่ -> เก็บ
  • แถว 3: col[1]=35 -> ซ้ำ -> ลบ
  • แถว 4: col[1]=85 -> ใหม่ -> เก็บ
  • แถว 5: col[1]=65 -> ซ้ำ -> ลบ

ใช้ Pandas (แนะนำสำหรับ DataFrame)

import pandas as pd
df = pd.DataFrame(my_list)
df = df.drop_duplicates(subset=K)  # K = column index/name