НачатьНачать бесплатно

Автоматизация загрузки и объединения данных с нескольких листов Excel

Теперь вы готовы автоматизировать импорт информации о листингах со всех трёх бирж из файла Excel listings.xlsx с помощью цикла for. Вот что предстоит сделать:

  1. Получить имена листов объекта pd.ExcelFile() через атрибут sheet_names.
  2. Создать пустой список.
  3. Написать цикл for, который перебирает имена листов, считывает данные с соответствующего листа Excel в переменную, при необходимости добавляет столбец-идентификатор и добавляет содержимое переменной в список на каждой итерации.
  4. Объединить DataFrame из списка с помощью конкатенации.

При необходимости обращайтесь к предыдущим упражнениям этой главы или к документации pandas. Библиотека pandas импортирована как pd.

Это упражнение является частью курса

Импорт и управление финансовыми данными в Python

Посмотреть курс

Инструкции к упражнению

  • Создайте объект pd.ExcelFile(), используя файл listings.xlsx, и присвойте его переменной xls.
  • Получите имена листов из атрибута .sheet_names объекта xls и присвойте их переменной exchanges.
  • Создайте пустой список и присвойте его переменной listings.
  • Переберите элементы exchanges с помощью цикла for, используя exchange в качестве переменной итератора. На каждой итерации:
    • Вызовите pd.read_excel(), передав xls в качестве источника данных, exchange в качестве аргумента sheet_name и 'n/a' в качестве na_values для обработки пропущенных значений. Присвойте результат переменной listing.
    • Создайте в listing новый столбец 'Exchange' со значением exchange (переменной итератора).
    • Добавьте полученный DataFrame listing в список listings.
  • Используйте pd.concat(), чтобы объединить содержимое listings, и присвойте результат переменной listing_data.
  • Изучите содержимое listing_data с помощью .info().

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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()
Редактировать и запускать код