OPVs de tecnología por año en todos los mercados
Cada empresa en el diccionario listings tiene un año de OPV entre 1972 y 2017. Por lo tanto, en este contexto, es apropiado considerar la columna 'IPO Year' de cada hoja como una variable categórica con un orden bien definido aunque su dtype sea float64.
Aquí combinarás los datos de los tres mercados y representarás la distribución de los años de OPV para las empresas del sector Technology. pandas como pd y matplotlib.pyplot como plt ya se han importado, y el diccionario listings del ejercicio anterior está en tu espacio de trabajo.
Este ejercicio forma parte del curso
Importación y gestión de datos financieros en Python
Instrucciones del ejercicio
- Usa un bucle for con la variable iteradora
exchangeque contiene el nombre de cada mercado.- En cada iteración, añade el DataFrame correspondiente a la clave
exchangeenlistingsaall_listings.
- En cada iteración, añade el DataFrame correspondiente a la clave
- Cuando termine el bucle, usa
pd.concat()para combinar los tres DataFrames enall_listingsy asigna el resultado alisting_data. - Filtra
listing_datapor empresas'Technology'y asigna el resultado atech_companies. - Asigna la columna
'IPO Year'detech_companiesaipo years. - Para estos datos, usa
.dropna()para eliminar los valores faltantes y.astype()para convertir aint. - Aplica
.value_counts()aipo_years, ordena los años en orden ascendente y crea un gráfico de barras con el título'Tech IPOs by Year'. - Rota las
xticks45 grados y muestra el resultado.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()