Chào mọi người,
Dạo này mình làm việc với nhiều file Excel cùng lúc, mà đôi khi cần kiểm tra xem có dữ liệu nào bị trùng lặp giữa các file hay không. Việc này làm thủ công rất tốn thời gian và dễ sai sót. Mình đã tìm tòi và phát hiện ra một cách khá hay để tự động hóa việc này bằng Python.
Cụ thể, mình sẽ viết một script Python để:
- Đọc dữ liệu từ nhiều file Excel khác nhau (ví dụ:
file1.xlsx,file2.xlsx, ...). - Chọn ra các cột cần so sánh.
- Kiểm tra và liệt kê các dòng dữ liệu bị trùng lặp giữa các file đó.
Dưới đây là một đoạn code ví dụ để các bạn tham khảo:
import pandas as pd
def check_duplicates_across_files(file_list, compare_columns):
all_data = pd.DataFrame()
for file in file_list:
df = pd.read_excel(file)
all_data = pd.concat([all_data, df])
# Loại bỏ các dòng trùng lặp hoàn toàn
duplicates = all_data[all_data.duplicated(subset=compare_columns, keep=False)]
return duplicates
# Ví dụ sử dụng
files = ['file1.xlsx', 'file2.xlsx']
columns_to_compare = ['Mã SP', 'Tên SP']
duplicate_rows = check_duplicates_across_files(files, columns_to_compare)
if not duplicate_rows.empty:
print('Các dòng dữ liệu bị trùng lặp:')
print(duplicate_rows)
else:
print('Không tìm thấy dữ liệu trùng lặp.')
Với đoạn code này, mình chỉ cần thay đổi tên file và tên cột cần so sánh là có thể xử lý được nhiều trường hợp. Nó giúp mình tiết kiệm được rất nhiều thời gian và đảm bảo tính chính xác khi làm việc với lượng lớn dữ liệu.
Không biết có anh em nào có kinh nghiệm hoặc cách làm nào khác hiệu quả hơn không, chia sẻ cho mình với nhé!