CodeGym /Khóa học Java /Python SELF VI /Ghi dữ liệu vào tệp Excel bằng thư viện pandas

Ghi dữ liệu vào tệp Excel bằng thư viện pandas

Python SELF VI
Mức độ , Bài học
Có sẵn

Chào các coder! Hy vọng mọi người vẫn ổn, nếu không, mong rằng bài giảng này sẽ làm ngày hôm nay của bạn vui hơn một chút. Hôm nay chúng ta sẽ học cách ghi dữ liệu vào tệp Excel bằng thư viện rất dễ thương và thân thiện là pandas. Đúng vậy, chính cái thư viện bạn đã từng nghe qua. Bài giảng này là một bước quan trọng trên con đường tự động hóa tất cả mọi thứ từ việc viết báo cáo cho đến quản lý tài chính cá nhân. Nếu bạn từng ước mơ trở thành nhà thánh tự động hóa bảng tính văn phòng (ai mà không muốn chứ?), thì bạn đã đi đúng hướng rồi đấy.

1. Cơ bản về ghi dữ liệu vào Excel bằng pandas

Giả dụ chúng ta có một DataFrame đầy ắp số liệu và văn bản hay ho và muốn biến chúng thành tệp Excel. Làm thế nào để làm điều đó với pandas? Siêu dễ mà! Thư viện pandas có một method tuyệt vời tên là to_excel giúp chúng ta giải quyết mọi vấn đề về lưu dữ liệu.

Cách hoạt động của nó?

Để ghi DataFrame vào một tệp Excel, chúng ta dùng method to_excel. Hàm này cho phép chúng ta chỉ định tên của file muốn lưu, ví dụ như đặt tên sheet trong Excel mà mình muốn ghi dữ liệu vào. Hãy xem một ví dụ nhỏ dưới đây:

Python

import pandas as pd

# Tạo một DataFrame nhỏ
data = {
    'Trái cây': ['Táo', 'Chuối', 'Anh đào'],
    'Số lượng': [10, 5, 2]
}
df = pd.DataFrame(data)

# Ghi DataFrame vào tệp Excel
df.to_excel('fruits.xlsx', sheet_name='Trái cây yêu thích', index=False)

print("Dữ liệu đã được ghi thành công vào tệp 'fruits.xlsx'")
    

Một chút về các tham số

  • Tên tệp: Chúng ta đã chỉ định là 'fruits.xlsx'. Đừng quên thêm đuôi '.xlsx', nếu không bạn sẽ tạo ra một file mà Excel không hiểu được đâu.
  • sheet_name: Chúng ta đã chỉ định 'Trái cây yêu thích'. Đây là tên sheet trong bảng Excel, nơi sẽ chứa dữ liệu.
  • index: Mặc định pandas sẽ ghi cột chỉ số DataFrame vào dưới dạng cột đầu tiên. Nếu không muốn thế, hãy đặt index=False như cách chúng ta làm ở đây.

2. Làm việc với nhiều sheet

Sao không thử ghi dữ liệu vào nhiều sheet trong cùng một file Excel nhỉ? Càng nhiều dữ liệu càng vui chứ sao! Dưới đây là một ví dụ cách làm.

Chúng ta sẽ sử dụng pandas.ExcelWriter, giúp chúng ta linh hoạt hơn trong việc thao tác file.

Python

# Tạo hai DataFrame
data1 = {'Trái cây': ['Táo', 'Cam'], 'Số lượng': [5, 7]}
data2 = {'Rau': ['Cà rốt', 'Bắp cải'], 'Số lượng': [3, 4]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Tạo một tệp Excel với nhiều sheet
with pd.ExcelWriter('produce.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Trái cây', index=False)
    df2.to_excel(writer, sheet_name='Rau', index=False)

print("Dữ liệu đã được ghi thành công vào tệp 'produce.xlsx' trên các sheet khác nhau.")
    

Tại sao cần điều này?

Việc làm việc với nhiều sheet rất hữu ích khi dữ liệu được phân loại logic theo từng danh mục, chẳng hạn như báo cáo cho từng tháng, các loại sản phẩm khác nhau, và vân vân. Excel trở thành một container toàn năng, cho phép lưu trữ tất cả dữ liệu trong một file nhưng tách biệt giữa các sheet.

3. Bài tập thực hành

Bây giờ là lúc để bạn thử thách bản thân. Hãy tạo một tệp Excel mới chứa dữ liệu bán sách tại cửa hàng. Sẽ có hai sheet trong đó: một cho doanh số sách vào tháng 1 và sheet khác là tháng 2. Dưới đây là một chút thông tin để bạn dễ dàng bắt đầu:

  • Tháng 1: sách "Python cho mọi người" (doanh số: 50), "Bí mật JavaScript" (doanh số: 30).
  • Tháng 2: sách "Python cho mọi người" (doanh số: 70), "Bí mật JavaScript" (doanh số: 40).

Hãy thử tự làm, nếu gặp khó khăn, tham khảo ví dụ dưới đây nhé.

Python

# Ví dụ giải bài tập

# Dữ liệu tháng 1
january_data = {'Sách': ['Python cho mọi người', 'Bí mật JavaScript'], 'Doanh số': [50, 30]}
january_df = pd.DataFrame(january_data)

# Dữ liệu tháng 2
february_data = {'Sách': ['Python cho mọi người', 'Bí mật JavaScript'], 'Doanh số': [70, 40]}
february_df = pd.DataFrame(february_data)

# Tạo tệp Excel với dữ liệu cho hai tháng
with pd.ExcelWriter('book_sales.xlsx') as writer:
    january_df.to_excel(writer, sheet_name='Tháng 1', index=False)
    february_df.to_excel(writer, sheet_name='Tháng 2', index=False)

print("Dữ liệu đã được ghi thành công vào tệp 'book_sales.xlsx'.")
    

Hãy kiểm tra tệp book_sales.xlsx, mở nó và xem lại những gì bạn đã tạo nhé!

4. Thảo luận giải pháp và tối ưu hóa

Như bạn có thể thấy, việc ghi dữ liệu vào Excel với pandas khá đơn giản. Nhưng vẫn có một vài điều mà bạn nên lưu ý:

  • Tối ưu hóa việc sử dụng bộ nhớ: Nếu bạn có những DataFrame siêu to khổng lồ, hãy chia nhỏ dữ liệu ra và ghi từng phần một.
  • Định dạng: Bạn có thể thêm định dạng, ví dụ như style cho tiêu đề các bảng. Việc này cần sử dụng thêm thư viện openpyxl cùng các method của nó.
  • Ghi nhiều lần: Nếu bạn dự định ghi dữ liệu thường xuyên vào cùng một file, hãy xem xét sử dụng mode='a' trong ExcelWriter để thêm dữ liệu mới vào file sẵn có.

Một vài ví dụ giải pháp cải thiện cho công việc tương lai

Trong tương lai, khi bạn đã là vua (hoặc nữ hoàng?) của tự động hóa, bạn sẽ cần biết tìm và sửa các vấn đề. Ví dụ, nếu công ty bạn quyết định tổng hợp báo cáo hàng ngày cho cả tháng, bạn có thể sử dụng pandasExcelWriter để tự động hóa quy trình này. Có thể bạn sẽ muốn tự động kiểm tra các ngày cuối tuần và ngày lễ để loại trừ không cần báo cáo.

Nên, đừng ngại thử nghiệm và tối ưu hóa công việc của bạn! Python với pandas là công cụ tuyệt vời để giúp bạn thực hiện điều đó.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION