Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Xóa hàng trùng lặp theo cột K (Remove Rows for similar Kth column element)

Khi cần xóa các hàng trùng lặp dựa trên giá trị tại cột K (giữ hàng đầu tiên), ta dùng vòng lặp và list append() theo dõi giá trị đã thấy.

Ví dụ

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

K = 1
print("Cột K =", K)

my_result = []
my_mem = []

for index in my_list:
    if index[K] not in my_mem:
        my_result.append(index)
        my_mem.append(index[K])

print("Kết quả (không trùng cột K):")
print(my_result)

Kết quả đầu ra

Danh sách:
[[45, 95, 26], [70, 35, 74], [87, 65, 23], [70, 35, 74], [67, 85, 12], [45, 65, 0]]
Cột K = 1
Kết quả (không trùng cột K):
[[45, 95, 26], [70, 35, 74], [87, 65, 23], [67, 85, 12]]

Giải thích

  • K=1 → cột thứ 2 (0-based): giá trị 95, 35, 65, 35, 85, 65.
  • Duyệt hàng: nếu giá trị cột K chưa trong my_mem → giữ hàng, thêm vào my_mem.
  • Hàng 3 (index 3): cột K=35 đã có → bỏ qua.
  • Hàng 5 (index 5): cột K=65 đã có → bỏ qua.

Pandas equivalent: df.drop_duplicates(subset=df.columns[K], keep='first').

Tối ưu: Dùng set cho my_mem: if index[K] not in seen: seen.add(index[K]); result.append(index).