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:
- Lấy danh sách tên sheet của một đối tượng
pd.ExcelFile()bằng thuộc tínhsheet_names. - Tạo một danh sách rỗng.
- 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.
- 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
Hướng dẫn bài tập
- Tạo đối tượng
pd.ExcelFile()từ tệplistings.xlsxvà gán cho biếnxls. - Lấy danh sách tên sheet từ thuộc tính
.sheet_namescủaxlsvà gán choexchanges. - Tạo một danh sách rỗng và gán cho biến
listings. - Lặp qua
exchangesbằng vòng lặp for với biến lặpexchange. Ở mỗi lần lặp:- Dùng
pd.read_excel()vớixlslàm nguồn dữ liệu,exchangelàm đối sốsheet_name, và'n/a'làmna_valuesđể xử lý giá trị thiếu. Gán kết quả cholisting. - Tạo một cột mới trong
listingtên'Exchange'với giá trị làexchange(biến lặp). - Thêm DataFrame
listingvàolistings.
- Dùng
- Dùng
pd.concat()để nối nội dung củalistingsvà gán cholisting_data. - Kiểm tra nội dung của
listing_databằ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()