Introductions en bourse technologiques par année sur toutes les places
Chaque entreprise dans le dictionnaire listings a une année d’introduction en bourse (IPO) entre 1972 et 2017. Dans ce contexte, il est donc pertinent de considérer la colonne 'IPO Year' de chaque feuille comme une variable catégorielle avec un ordre bien défini, même si son dtype est float64.
Ici, vous allez combiner les données des trois places boursières et tracer la distribution des années d’IPO pour les entreprises du secteur Technology. pandas sous l’alias pd et matplotlib.pyplot sous l’alias plt ont été importés, et le dictionnaire listings de l’exercice précédent est disponible dans votre espace de travail.
Cet exercice fait partie du cours
Importer et gérer des données financières en Python
Instructions
- Utilisez une boucle for avec la variable d’itération
exchangequi contient le nom de chaque place boursière.- À chaque itération, ajoutez le DataFrame correspondant à la clé
exchangedanslistingsàall_listings.
- À chaque itération, ajoutez le DataFrame correspondant à la clé
- Une fois la boucle terminée, utilisez
pd.concat()pour combiner les trois DataFrames deall_listingset affectez le résultat àlisting_data. - Filtrez
listing_datapour les entreprises'Technology'et affectez le résultat àtech_companies. - Affectez la colonne
'IPO Year'detech_companiesàipo years. - Pour ces données, utilisez
.dropna()pour supprimer les valeurs manquantes et.astype()pour convertir enint. - Appliquez
.value_counts()àipo_years, triez les années par ordre croissant et créez un diagramme en barres intitulé'Tech IPOs by Year'. - Faites pivoter les
xticksde 45 degrés et affichez le résultat.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()