Cách hợp nhất nhiều workbook Excel bằng Python

Python, là một ngôn ngữ, có giá trị vượt trội, đặc biệt là khi bạn muốn làm việc với dữ liệu có cấu trúc. Vì mọi người lưu trữ nhiều dữ liệu trong file Excel, nên bắt buộc phải hợp nhất nhiều file để tiết kiệm thời gian và công sức.

Python cho phép bạn thực hiện điều đó. Bất kể bạn muốn kết hợp bao nhiêu file Excel, bạn đều có thể thực hiện một cách tương đối dễ dàng. Trong hướng dẫn này, bạn sẽ cần cài đặt và sử dụng thư viện Pandas để nhập dữ liệu vào Python trước khi hợp nhất nó.

Cài đặt thư viện Pandas bằng Python

Pandas là một thư viện của bên thứ ba mà bạn có thể cài đặt bằng Python. Một số IDE đã được cài đặt Pandas trong đó.

Nếu bạn đang sử dụng phiên bản IDE không đi kèm với Pandas được cài đặt sẵn, hãy yên tâm, bạn có thể cài đặt trực tiếp bằng Python.

Đây là cách cài đặt Pandas:

pip install pandas

Nếu đang sử dụng Jupyter Notebook, bạn có thể cài đặt Pandas trực tiếp bằng lệnh PIP. Trong hầu hết mọi trường hợp, nếu đã cài đặt Jupyter với Anaconda, rất có thể bạn đã có sẵn Pandas để sử dụng trực tiếp.

Nếu không thể gọi Pandas, bạn có thể sử dụng lệnh trên để cài đặt chúng trực tiếp.

Kết hợp các file Excel với Python

Trước tiên, bạn cần tạo một thư mục ở vị trí ưa thích của mình với tất cả các file Excel. Khi thư mục đã sẵn sàng, bạn có thể bắt đầu viết code để nhập các thư viện.

Bạn sẽ sử dụng hai biến trong code này:

  • Pandas: Thư viện Pandas cung cấp các data frame để lưu trữ các file Excel.
  • OS: Thư viện có lợi cho việc đọc dữ liệu từ thư mục trên máy của bạn

Để nhập những thư viện này, hãy sử dụng các lệnh sau:

Import Pandas as pd
Import OS
  • Import: Cú pháp Python được sử dụng để nhập các thư viện trong Python
  • Pandas: Tên của thư viện
  • pd: Alias được cấp cho thư viện
  • OS: Một thư viện để truy cập vào thư mục hệ thống

Khi bạn đã nhập các thư viện, hãy tạo hai biến để lưu trữ đường dẫn file đầu vào và đầu ra. Đường dẫn file đầu vào là cần thiết để truy cập vào thư mục của file. Đường dẫn file đầu ra là cần thiết vì file kết hợp sẽ được xuất ở đó.

Nếu bạn đang sử dụng Python, hãy đảm bảo bạn thay đổi dấu gạch chéo ngược thành dấu gạch chéo ngược (\ thành /).

input_file_path = "C:/Users/gaurav/OneDrive/Desktop/Excel files/"
output_file_path = "C:/Users/gaurav/OneDrive/Desktop/"

Nối / vào cuối cũng để hoàn thành các đường dẫn.

Các file của thư mục có sẵn trong một danh sách. Tạo danh sách để lưu trữ tất cả các tham chiếu file của thư mục đầu vào bằng cách sử dụng hàm listdir từ thư viện OS.

Nếu bạn không chắc chắn về các chức năng có sẵn trong thư viện, bạn có thể sử dụng hàm dir với tên thư viện. Ví dụ, để kiểm tra phiên bản chính xác của hàm listdir, bạn có thể sử dụng lệnh như sau:

dir(OS)

Đầu ra sẽ bao gồm tất cả các chức năng liên quan có sẵn trong thư viện OS. Hàm listdir là một trong nhiều hàm có sẵn trong thư viện này.

Tạo một biến mới để lưu trữ các file đầu vào từ thư mục.

excel_file_list = os.listdir(input_file_path)

In biến này để xem tên của các file được lưu trữ trong thư mục. Tất cả các file lưu trữ trong thư mục được hiển thị khi bạn sử dụng hàm print.

print (excel_file_list)

Tiếp theo, bạn cần thêm một data frame mới để lưu trữ từng file Excel. Hãy tưởng tượng data frame giống như một container để lưu trữ dữ liệu. Đây là lệnh để tạo data frame.

df = pd.DataFrame()
  • df: Biến để lưu trữ giá trị của DataFrame
  • pd: Alias cho thư viện Pandas
  • DataFrame: Cú pháp mặc định để thêm data frame

Thư mục đầu vào có 3 file .xlsx trong ví dụ này. Tên file là:

File1_excel.xlsx
File2_excel.xlsx
File3_excel.xlsx

Để mở từng file từ thư mục này, bạn cần chạy một vòng lặp. Vòng lặp sẽ chạy cho từng file trong danh sách đã tạo ở trên.

Đây là cách bạn có thể làm điều đó:

for excel_files in excel_file_list:

Tiếp theo, cần kiểm tra phần mở rộng file vì code sẽ chỉ mở file XLSX. Để kiểm tra các file này, bạn có thể sử dụng câu lệnh If.

Sử dụng hàm endwith cho mục đích này, như sau:

for excel_files in excel_file_list:
 
 if excel_files.endswith(".xlsx"):
  • excel_files: Liệt kê với tất cả các giá trị file
  • endwith: Chức năng kiểm tra phần mở rộng file
  • (".xlsx"): Giá trị chuỗi này có thể thay đổi, tùy thuộc vào những gì bạn muốn tìm kiếm

Bây giờ, sau khi đã xác định được các file Excel, bạn có thể tạo một data frame mới để đọc và lưu trữ các file riêng lẻ.

for excel_files in excel_file_list:

 if excel_files.endswith(".xlsx"):
 
 df1 = pd.read_excel(input_file_path+excel_files)
  • df1: Data frame mới
  • pd: Thư viện Pandas
  • read_excel: Hàm đọc các file Excel trong thư viện Pandas
  • input_file_path: Đường dẫn của thư mục nơi các file được lưu trữ
  • excel_files: Bất kỳ biến nào được sử dụng trong vòng lặp for

Để bắt đầu nối các file, bạn cần sử dụng hàm append.

for excel_files in excel_file_list:

 if excel_files.endswith(".xlsx"):
 
 df1 = pd.read_excel(input_file_path+excel_files)
 df = df.append(df1)

Cuối cùng, bây giờ data frame tổng hợp đã sẵn sàng, bạn có thể xuất nó sang vị trí đầu ra. Trong trường hợp này, bạn đang xuất data frame sang file XLSX.

df.to_excel(output_file_path+"Consolidated_file.xlsx")
  • df: Data frame để xuất
  • to_excel: Lệnh dùng để xuất dữ liệu
  • output_file_path: Đường dẫn được xác định để lưu trữ đầu ra
  • Merge_file.xlsx: Tên của file hợp nhất

Bây giờ, hãy xem code cuối cùng:

#Pandas is used as a dataframe to handle Excel files
import pandas as pd
import os

# change the slash from “\” to “/”, if you are using Windows devices

input_file_path = "C:/Users/gaurav/OneDrive/Desktop/Excel files/"
output_file_path = "C:/Users/gaurav/OneDrive/Desktop/"

#create a list to store all the file references of the input folder using the listdir function from the os library.
#To see the contents of a library (like the listdir function, you can use the dir function on the library name).
#Use dir(library_name) to list contents

excel_file_list = os.listdir(input_file_path)

#print all the files stored in the folder, after defining the list
excel_file_list


#Once each file opens, use the append function to start consolidating the data stored in multiple files

#create a new, blank dataframe, to handle the excel file imports
df = pd.DataFrame()

#Run a for loop to loop through each file in the list
for excel_files in excel_file_list:
 #check for .xlsx suffix files only
 if excel_files.endswith(".xlsx"):
 #create a new dataframe to read/open each Excel file from the list of files created above
 df1 = pd.read_excel(input_file_path+excel_files)
 #append each file into the original empty dataframe
 df = df.append(df1)

#transfer final output to an Excel (xlsx) file on the output path 
df.to_excel(output_file_path+"Consolidated_file.xlsx")

Pandas của Python là một công cụ tuyệt vời cho người mới bắt đầu cũng như người dùng nâng cao. Thư viện được sử dụng rộng rãi bởi các nhà phát triển muốn thành thạo Python.

Ngay cả khi là người mới bắt đầu, bạn có thể được hưởng lợi vô cùng lớn bằng cách tìm hiểu các sắc thái của Pandas và cách thư viện được sử dụng trong Python.

Thứ Tư, 30/03/2022 07:12
31 👨 3.079
0 Bình luận
Sắp xếp theo
    ❖ Microsoft Excel