Cách Làm Việc Với Nhiều Sheet trong Excel Sử Dụng Python

Khi làm việc với dữ liệu trong Excel, đôi khi dữ liệu không chỉ được lưu trong một sheet mà có thể phân tán trên nhiều sheet trong cùng một file. Trong trường hợp này, pandas cung cấp một công cụ tuyệt vời giúp bạn làm việc với nhiều sheet cùng lúc, bao gồm khả năng đọc, ghikết hợp dữ liệu từ các sheet khác nhau. Bài viết này sẽ hướng dẫn bạn cách sử dụng pandas để thao tác với nhiều sheet trong một file Excel, giúp bạn dễ dàng làm việc với dữ liệu phức tạp.


1. Cài Đặt pandas và openpyxl

Trước tiên, để làm việc với dữ liệu Excel, bạn cần cài đặt hai thư viện pandasopenpyxl. pandas là thư viện chính để xử lý dữ liệu, trong khi openpyxl sẽ giúp pandas đọc và ghi dữ liệu vào file Excel định dạng .xlsx.

Các bước cài đặt:

  1. Mở terminal hoặc command prompt.
  2. Chạy lệnh dưới đây để cài đặt pandasopenpyxl: pip install pandas openpyxl

Sau khi cài đặt xong, bạn đã sẵn sàng để bắt đầu làm việc với Excel trong Python.


2. Đọc Dữ Liệu Từ Nhiều Sheet Trong Excel

Một trong những tính năng quan trọng của pandas là khả năng đọc nhiều sheet cùng lúc. Khi bạn có một file Excel với nhiều sheet, bạn có thể sử dụng pandas để đọc tất cả các sheet hoặc chỉ một sheet cụ thể.

Ví dụ thực tế:
Giả sử bạn có một file Excel SalesData.xlsx chứa hai sheet: Sales_2023Sales_2022, mỗi sheet lưu trữ dữ liệu bán hàng cho các năm tương ứng. Mỗi sheet có các cột như ProductName, SalesAmount, SaleDate, và Region.

Các bước thực hiện:

  1. Đọc dữ liệu từ tất cả các sheet:
import pandas as pd

# Đọc dữ liệu từ tất cả các sheet trong Excel
df_sheets = pd.read_excel('SalesData.xlsx', sheet_name=None)

# Hiển thị các sheet có trong file Excel
print(df_sheets.keys())

Giải thích:

  • sheet_name=None: Khi bạn không chỉ định tên sheet, pandas sẽ đọc toàn bộ các sheet trong file Excel và trả về một dictionary (từ điển), với tên sheet là key và dữ liệu của sheet đó là giá trị.
  • df_sheets.keys(): Hiển thị tên tất cả các sheet có trong file Excel.
  1. Đọc dữ liệu từ một sheet cụ thể:
# Đọc dữ liệu từ sheet Sales_2023
df_2023 = pd.read_excel('SalesData.xlsx', sheet_name='Sales_2023')

# Hiển thị dữ liệu từ sheet Sales_2023
print(df_2023)

Giải thích:

  • sheet_name='Sales_2023': Chỉ định tên sheet bạn muốn đọc dữ liệu từ đó. Bạn có thể thay đổi tên sheet tùy theo nhu cầu.

3. Kết Hợp Dữ Liệu Từ Nhiều Sheet

Khi bạn đọc dữ liệu từ nhiều sheet trong cùng một file Excel, có thể bạn muốn kết hợp (merge) dữ liệu từ các sheet đó để tạo thành một bảng duy nhất. pandas cung cấp các phương thức như concat() hoặc merge() để kết hợp dữ liệu.

Ví dụ thực tế:
Giả sử bạn muốn kết hợp dữ liệu bán hàng từ hai năm (2023 và 2022) vào một bảng duy nhất để dễ dàng phân tích.

  1. Kết hợp dữ liệu từ nhiều sheet:
# Đọc dữ liệu từ các sheet Sales_2023 và Sales_2022
df_2023 = pd.read_excel('SalesData.xlsx', sheet_name='Sales_2023')
df_2022 = pd.read_excel('SalesData.xlsx', sheet_name='Sales_2022')

# Kết hợp dữ liệu từ 2 sheet thành 1 DataFrame
df_combined = pd.concat([df_2023, df_2022], ignore_index=True)

# Hiển thị dữ liệu kết hợp
print(df_combined)

Giải thích:

  • pd.concat([df_2023, df_2022], ignore_index=True): Hàm concat() kết hợp hai DataFrame (df_2023 và df_2022) thành một DataFrame duy nhất. Tham số ignore_index=True giúp làm mới chỉ mục cho các dòng trong bảng kết hợp.
  • Bây giờ bạn có thể làm việc với dữ liệu từ cả hai năm trong một bảng duy nhất.

4. Viết Dữ Liệu Vào Nhiều Sheet

Power BI không chỉ cho phép bạn đọc dữ liệu từ nhiều sheet, mà còn hỗ trợ việc ghi dữ liệu vào nhiều sheet trong một file Excel. Điều này rất hữu ích khi bạn muốn lưu kết quả phân tích hoặc tạo các báo cáo từ nhiều nguồn dữ liệu khác nhau.

Ví dụ thực tế:
Sau khi phân tích và xử lý dữ liệu từ nhiều sheet, bạn muốn lưu lại kết quả vào một file Excel mới, với mỗi kết quả phân tích ở một sheet khác nhau.

Các bước thực hiện:

  1. Viết dữ liệu vào nhiều sheet:
# Tạo dữ liệu mới sau khi xử lý
df_processed_2023 = df_2023[['ProductName', 'SalesAmount']].groupby('ProductName').sum()
df_processed_2022 = df_2022[['ProductName', 'SalesAmount']].groupby('ProductName').sum()

# Lưu kết quả vào file Excel với nhiều sheet
with pd.ExcelWriter('ProcessedSalesData.xlsx') as writer:
    df_processed_2023.to_excel(writer, sheet_name='Sales_2023')
    df_processed_2022.to_excel(writer, sheet_name='Sales_2022')

# Dữ liệu đã được lưu vào các sheet tương ứng

Giải thích:

  • pd.ExcelWriter(): Đây là cách để ghi dữ liệu vào nhiều sheet trong một file Excel. Bạn có thể viết nhiều DataFrame vào các sheet khác nhau trong cùng một file.
  • to_excel(writer, sheet_name='Sales_2023'): Lưu dữ liệu của df_processed_2023 vào sheet Sales_2023 trong file ProcessedSalesData.xlsx.

5. Làm Việc Với Nhiều Sheet trong Power BI

Nếu bạn sử dụng Power BI, bạn cũng có thể nhập dữ liệu từ nhiều sheet trong một file Excel và kết hợp chúng để tạo báo cáo. Việc làm việc với nhiều sheet trong Power BI khá giống với cách làm trong pandas, với các tính năng mạnh mẽ như DirectQueryData Transformations.


Kết Luận

Việc làm việc với nhiều sheet trong Excel sử dụng pandas rất hữu ích khi bạn phải xử lý dữ liệu phức tạp và phân tán trong nhiều sheet. Bạn có thể dễ dàng đọc, kết hợp, và ghi dữ liệu vào nhiều sheet trong Excel để phục vụ cho mục đích phân tích. Sử dụng pandas giúp bạn tiết kiệm thời gian và công sức, đặc biệt khi làm việc với các bộ dữ liệu lớn và phức tạp.


Hashtags
#Python #Pandas #ExcelData #MultipleSheets #DataProcessing #ExcelWithPython #DataAnalysis #LearnPython #PythonForDataScience #ExcelAutomation #DataCleaning


Hãy thực hành ngay hôm nay để làm quen với việc làm việc với nhiều sheet trong Excel bằng pandas và tối ưu hóa công việc phân tích của bạn!

Scroll to Top