Menu

Tự động hóa xử lý file CSV hàng loạt bằng Python

Biện Quỳnh Hải 07/06/2026 20:14 405 lượt xem 1 trả lời

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!

0

Hay quá bạn ơi! Mình cũng đang vật lộn với mớ CSV đây. Bạn có thể chia sẻ cụ thể hơn về cách bạn dùng pandas để lọc và đổi tên cột không? Mình đang tìm hiểu về cái này mà chưa có kinh nghiệm lắm.

3

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký