Lấy dữ liệu từ nhiều worksheet

Nạp dữ liệu gọn nhẹ với pandas

Amany Mahfouz

Instructor

Chọn sheet để tải

  • read_excel() mặc định tải sheet đầu tiên trong tệp Excel
  • Dùng đối số sheet_name để tải sheet khác
  • Chỉ định sheet theo tên và/hoặc vị trí (đánh số từ 0)
  • Truyền danh sách tên/số để tải nhiều sheet cùng lúc
  • Mọi đối số truyền vào read_excel() áp dụng cho tất cả sheet được đọc
Nạp dữ liệu gọn nhẹ với pandas

Chọn sheet để tải

Ảnh chụp chương trình bảng tính, hiển thị thẻ cho hai bảng tính

Nạp dữ liệu gọn nhẹ với pandas

Tải các sheet chọn lọc

# Lấy sheet thứ hai theo chỉ số vị trí
survey_data_sheet2 = pd.read_excel('fcc_survey.xlsx',
                                   sheet_name=1)

# Lấy sheet thứ hai theo tên survey_data_2017 = pd.read_excel('fcc_survey.xlsx', sheet_name='2017')
print(survey_data_sheet2.equals(survey_data_2017))
True
Nạp dữ liệu gọn nhẹ với pandas

Tải tất cả sheet

  • Truyền sheet_name=None vào read_excel() để đọc tất cả sheet trong workbook
survey_responses = pd.read_excel("fcc_survey.xlsx", sheet_name=None)

print(type(survey_responses))
<class 'collections.OrderedDict'>
for key, value in survey_responses.items():
    print(key, type(value))
2016 <class 'pandas.core.frame.DataFrame'>
2017 <class 'pandas.core.frame.DataFrame'>
Nạp dữ liệu gọn nhẹ với pandas

Tổng hợp lại

# Tạo dataframe rỗng để chứa mọi sheet đã tải
all_responses = pd.DataFrame()

# Lặp qua các dataframe trong dictionary for sheet_name, frame in survey_responses.items(): # Thêm cột để biết dữ liệu thuộc năm nào frame["Year"] = sheet_name
# Gộp dataframe vào all_responses all_responses = pd.concat([all_responses, frame])
# Xem các năm trong dữ liệu print(all_responses.Year.unique())
['2016' '2017']
Nạp dữ liệu gọn nhẹ với pandas

Laten we oefenen!

Nạp dữ liệu gọn nhẹ với pandas

Preparing Video For Download...