Chào mọi người,
Dạo gần đây mình có làm việc với nhiều file CSV chứa dữ liệu khách hàng. Mỗi lần nhận được một lô file mới là lại phải ngồi copy-paste, sắp xếp lại cột, lọc bỏ những dòng trùng lặp... mất cả buổi. Bực mình quá nên mình thử tìm hiểu và viết một đoạn script Python nhỏ để tự động hóa công việc này.
Mục đích của mình là:
- Đọc tất cả các file CSV trong một thư mục chỉ định.
- Ghép nối nội dung của tất cả các file lại thành một file duy nhất.
- Loại bỏ các dòng trùng lặp dựa trên một hoặc nhiều cột (ví dụ: cột Email).
- Xuất kết quả ra một file CSV mới, sạch sẽ và sẵn sàng để phân tích.
Code mình viết khá đơn giản, chủ yếu dùng thư viện pandas. Đây là đoạn code chính:
import pandas as pd
import glob
import os
folder_path = 'duong_dan_toi_thu_muc_csv'
output_file = 'ket_qua_da_xu_ly.csv'
all_files = glob.glob(os.path.join(folder_path, '*.csv'))
df_list = []
for filename in all_files:
df = pd.read_csv(filename)
df_list.append(df)
merged_df = pd.concat(df_list, ignore_index=True)
# Thay 'Ten_Cot_Can_Loc_Trung_lap' bằng tên cột thực tế
deduplicated_df = merged_df.drop_duplicates(subset=['Ten_Cot_Can_Loc_Trung_lap'])
deduplicated_df.to_csv(output_file, index=False)
print(f'Đã xử lý xong! Kết quả lưu tại: {output_file}')
Các bạn chỉ cần thay 'duong_dan_toi_thu_muc_csv' bằng đường dẫn tới thư mục chứa file CSV của mình và 'Ten_Cot_Can_Loc_Trung_lap' bằng tên cột mà bạn muốn loại bỏ trùng lặp.
Cách này giúp mình tiết kiệm được rất nhiều thời gian và tránh sai sót khi làm việc với lượng lớn file CSV. Chia sẻ lên đây để anh em nào đang gặp vấn đề tương tự có thể tham khảo.
Có ai có cách nào hay hơn hoặc muốn thảo luận thêm về xử lý dữ liệu bằng Python thì cứ comment bên dưới nhé!