IPOs de tecnologia por ano em todas as bolsas
Cada empresa no dicionário listings tem um ano de IPO entre 1972 e 2017. Portanto, neste contexto, é adequado considerar a coluna 'IPO Year' de cada planilha como uma variável categórica com uma ordem bem definida, mesmo que seu dtype seja float64.
Aqui você vai combinar dados das três bolsas e plotar a distribuição dos anos de IPO para empresas do setor de Technology. pandas como pd e matplotlib.pyplot como plt já foram importados, e o dicionário listings do exercício anterior está no seu workspace.
Este exercício faz parte do curso
Importing and Managing Financial Data in Python
Instruções do exercício
- Use um laço
forcom a variável iteradoraexchangeque contenha o nome de cada bolsa.- Em cada iteração, acrescente o DataFrame correspondente à chave
exchangeemlistingsaall_listings.
- Em cada iteração, acrescente o DataFrame correspondente à chave
- Após concluir o laço, use
pd.concat()para combinar os três DataFrames emall_listingse atribua o resultado alisting_data. - Filtre
listing_datapor empresas de'Technology'e atribua o resultado atech_companies. - Atribua a coluna
'IPO Year'detech_companiesaipo years. - Para esses dados, use
.dropna()para remover valores ausentes e.astype()para converter paraint. - Aplique
.value_counts()aipo_years, ordene os anos em ordem crescente e crie um gráfico de barras com o título'Tech IPOs by Year'. - Gire os
xticksem 45 graus e mostre o resultado.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create lists
exchanges = ['amex', 'nasdaq', 'nyse']
all_listings = []
# Use for loop to create listing_data
for exchange in exchanges:
all_listings.____(____[____])
# Combine DataFrames
listing_data = pd.____(____)
# Select tech companies
tech_companies = listing_data[____.____ == 'Technology']
# Create ipo_years
ipo_years = ____[____]
# Drop missing values and convert to int
ipo_years = ipo_years.____().____(int)
# Count values, sort ascending by year, and create a bar plot
ipo_years.____().plot(kind=____, ____='Tech IPOs by Year')
# Rotate xticks and show result
plt.xticks(____=____)
# Show the plot
plt.show()