Chào các anh em trong diễn đàn,
Dạo này công việc của mình liên quan đến việc xử lý nhiều file CSV cùng lúc, mà toàn file dung lượng lớn. Làm thủ công thì mất thời gian kinh khủng. Mình có mày mò và viết một script Python nho nhỏ để tự động hóa việc này. Nay chia sẻ lên đây, hy vọng có thể giúp ích cho anh em nào đang gặp tình huống tương tự.
Vấn đề: Xử lý nhiều file CSV (ví dụ: lọc dữ liệu, đổi tên cột, tính toán tổng...) một cách tự động.
Giải pháp: Sử dụng Python với thư viện pandas.
Cách làm cơ bản:
- Đầu tiên, bạn cần cài đặt thư viện pandas nếu chưa có:
pip install pandas - Tiếp theo, viết một đoạn script để đọc tất cả các file CSV trong một thư mục, xử lý từng file theo yêu cầu của bạn, rồi lưu kết quả ra file mới hoặc ghi đè lên file cũ (tùy mục đích).
Ví dụ script đơn giản để đọc tất cả file CSV trong thư mục 'data' và chỉ lấy các cột 'ID', 'Name', 'Value', sau đó lưu vào file 'output.csv':
import pandas as pd
import os
folder_path = 'data'
output_file = 'output.csv'
all_data = pd.DataFrame()
for filename in os.listdir(folder_path):
if filename.endswith('.csv'):
file_path = os.path.join(folder_path, filename)
df = pd.read_csv(file_path)
# Chỉ lấy các cột cần thiết (ví dụ)
if 'ID' in df.columns and 'Name' in df.columns and 'Value' in df.columns:
processed_df = df[['ID', 'Name', 'Value']]
all_data = pd.concat([all_data, processed_df], ignore_index=True)
else:
print(f'Cảnh báo: File {filename} thiếu cột cần thiết!')
all_data.to_csv(output_file, index=False)
print(f'Đã xử lý xong và lưu kết quả vào {output_file}')
Anh em có thể tùy chỉnh phần xử lý dữ liệu bên trong vòng lặp for để phù hợp với nhu cầu cụ thể của mình nhé. Ví dụ như thêm điều kiện lọc, tính tổng, đổi tên cột, v.v.
Hy vọng mẹo nhỏ này giúp anh em tiết kiệm được kha khá thời gian!