Chào các anh em, mình có một bài toán nhỏ muốn chia sẻ và cũng là nhờ mọi người xem có cách nào tối ưu hơn không.
Tình hình là mình có một file Excel nguồn chứa rất nhiều dữ liệu (hàng chục nghìn dòng). Bây giờ mình muốn tạo ra một file Excel mới, nhưng chỉ chứa những dòng dữ liệu thỏa mãn một vài điều kiện nhất định, ví dụ như chỉ lấy những đơn hàng có trạng thái 'Hoàn thành' và ngày đặt hàng trong tháng 10/2023.
Trước đây, mình toàn làm thủ công là lọc trên file gốc rồi copy-paste sang file mới. Tuy nhiên, việc này rất tốn thời gian và dễ sai sót, đặc biệt khi file nguồn có quá nhiều dữ liệu.
Gần đây, mình có mày mò học Python và thấy có thể dùng thư viện pandas để giải quyết vấn đề này một cách tự động. Ý tưởng của mình là:
- Đọc file Excel nguồn vào một DataFrame của pandas.
- Áp dụng các bộ lọc để chọn ra những dòng dữ liệu mong muốn.
- Tạo một DataFrame mới từ dữ liệu đã lọc.
- Xuất DataFrame mới này ra một file Excel mới.
Code cơ bản của mình trông như thế này:
import pandas as pd
# Đọc file Excel nguồn
df_nguon = pd.read_excel('du_lieu_nguon.xlsx')
# Lọc dữ liệu theo điều kiện
df_loc = df_nguon[(df_nguon['Trạng thái'] == 'Hoàn thành') & (df_nguon['Ngày đặt hàng'] >= '2023-10-01') & (df_nguon['Ngày đặt hàng']