Bắt đầu ngayBắt đầu miễn phí

Tự động tải và kết hợp dữ liệu từ nhiều worksheet Excel

Giờ bạn đã sẵn sàng tự động hóa quy trình nhập thông tin niêm yết từ cả ba sàn trong tệp Excel listings.xlsx bằng cách triển khai một vòng lặp for. Bạn sẽ làm như sau:

  1. Lấy danh sách tên sheet của một đối tượng pd.ExcelFile() bằng thuộc tính sheet_names.
  2. Tạo một danh sách rỗng.
  3. Viết một vòng lặp for duyệt qua các tên sheet này để đọc dữ liệu từ sheet tương ứng trong tệp Excel vào một biến. Thêm một cột tham chiếu nếu muốn. Ở mỗi vòng lặp, nối (append) nội dung của biến này vào danh sách.
  4. Nối (concatenate) các DataFrame trong danh sách.

Như mọi khi, hãy tham khảo các bài tập trước trong chương này hoặc tài liệu pandas nếu bạn cần trợ giúp. pandas đã được import với bí danh pd.

Bài tập này là một phần của khóa học

Nhập và quản lý dữ liệu tài chính bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Tạo đối tượng pd.ExcelFile() từ tệp listings.xlsx và gán cho biến xls.
  • Lấy danh sách tên sheet từ thuộc tính .sheet_names của xls và gán cho exchanges.
  • Tạo một danh sách rỗng và gán cho biến listings.
  • Lặp qua exchanges bằng vòng lặp for với biến lặp exchange. Ở mỗi lần lặp:
    • Dùng pd.read_excel() với xls làm nguồn dữ liệu, exchange làm đối số sheet_name, và 'n/a' làm na_values để xử lý giá trị thiếu. Gán kết quả cho listing.
    • Tạo một cột mới trong listing tên 'Exchange' với giá trị là exchange (biến lặp).
    • Thêm DataFrame listing vào listings.
  • Dùng pd.concat() để nối nội dung của listings và gán cho listing_data.
  • Kiểm tra nội dung của listing_data bằng .info().

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Create the pd.ExcelFile() object
xls = ____

# Extract the sheet names from xls
exchanges = ____.____

# Create an empty list: listings


# Import the data
for exchange in exchanges:
    listing = pd.____(____, sheet_name=____, na_values='n/a')
    listing['Exchange'] = ____
    listings.____(____)

# Concatenate the listings: listing_data
listing_data = pd.____(____)

# Inspect the results
listing_data.info()
Chỉnh sửa và Chạy Mã