ComeçarComece de graça

Automatize o carregamento e a combinação de dados de várias planilhas do Excel

Agora você está pronto para automatizar o processo de importação das informações de listagem das três bolsas no arquivo Excel listings.xlsx, implementando um loop for. Veja o que você vai fazer:

  1. Obter os nomes das planilhas de um objeto pd.ExcelFile() usando o atributo sheet_names.
  2. Criar uma lista vazia.
  3. Escrever um loop for que percorra esses nomes de planilha para ler os dados da planilha correspondente no arquivo Excel para uma variável. Adicione uma coluna de referência, se desejar. Acrescente o conteúdo dessa variável à lista a cada iteração.
  4. Concatenar os DataFrames na lista.

Como sempre, consulte os exercícios anteriores deste capítulo ou a documentação do pandas se precisar de ajuda. pandas já foi importado como pd.

Este exercício faz parte do curso

Importing and Managing Financial Data in Python

Ver curso

Instruções do exercício

  • Crie o objeto pd.ExcelFile() usando o arquivo listings.xlsx e atribua à variável xls.
  • Obtenha os nomes das planilhas a partir do atributo .sheet_names de xls e atribua a exchanges.
  • Crie uma lista vazia e atribua à variável listings.
  • Percorra exchanges usando um loop for com exchange como variável iteradora. Em cada iteração:
    • Use pd.read_excel() com xls como fonte de dados, exchange como argumento sheet_name e 'n/a' como na_values para tratar valores ausentes. Atribua o resultado a listing.
    • Crie uma nova coluna em listing chamada 'Exchange' com o valor exchange (a variável iteradora).
    • Acrescente o DataFrame listing resultante a listings.
  • Use pd.concat() para concatenar o conteúdo de listings e atribua a listing_data.
  • Inspecione o conteúdo de listing_data usando .info().

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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()
Editar e executar o código