PDE technos par année sur toutes les bourses
Chaque entreprise du dictionnaire listings a une année d'entrée 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 bourses et tracer la distribution des années d'IPO pour les entreprises du secteur des technologies. pandas sous pd et matplotlib.pyplot sous plt ont été importés, et le dictionnaire listings de l'exercice précédent est disponible dans votre espace de travail.
Cette activité fait partie du cours
Importer et gérer des données financières en Python
Instructions de l’exercice
- Utilisez une boucle for avec la variable d'itération
exchangequi contient le nom de chaque bourse.- À chaque itération, ajoutez au bout de
all_listingsle DataFrame correspondant à la cléexchangedanslistings.
- À chaque itération, ajoutez au bout de
- Après la boucle, utilisez
pd.concat()pour combiner les trois DataFrames dansall_listingset assignez le résultat àlisting_data. - Filtrez
listing_datapour les entreprises'Technology'et assignez le résultat àtech_companies. - Assignez 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 à 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 ce code d’exemple.
# 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()