CommencerCommencer gratuitement

Ecrire un itérateur pour charger des données par morceaux (5)

C'est la dernière étape. Vous avez beaucoup appris sur le traitement d'un grand ensemble de données par morceaux. Dans ce dernier exercice, vous mettrez tout le code de traitement des données dans une seule fonction afin de pouvoir réutiliser le code sans avoir à réécrire les mêmes choses.

Vous allez définir la fonction plot_pop() qui prend deux arguments : le nom du fichier à traiter et le code pays des lignes que vous souhaitez traiter dans l'ensemble de données.

Comme tout le code que vous avez écrit dans les exercices précédents sera logé dans plot_pop(), l'appel de la fonction a déjà l'effet suivant :

  • Chargement du fichier morceau par morceau,
  • Création de la nouvelle colonne des valeurs de la population urbaine, et
  • Représentation graphique des données relatives à la population urbaine.

C'est beaucoup de travail, mais la fonction permet maintenant de répéter le même processus pour tout fichier et code de pays que vous souhaitez traiter et visualiser !

Vous allez utiliser les données de 'ind_pop_data.csv', disponibles dans votre répertoire actuel. Les paquets pandas et matplotlib.pyplot ont été importés sous les noms pd et plt respectivement pour votre usage.

Une fois que vous avez terminé, prenez le temps de regarder les tracés et de réfléchir aux nouvelles compétences que vous avez acquises. Le voyage ne s'arrête pas là ! Si vous avez aimé travailler avec ces données, vous pouvez continuer à les explorer en utilisant la version prétraitée disponible sur Kaggle.

Cet exercice fait partie du cours

Boîte à outils Python

Afficher le cours

Instructions

  • Définissez la fonction plot_pop() qui a deux arguments : le premier est filename pour le fichier à traiter et le second est country_code pour le pays à traiter dans l'ensemble de données.
  • Appelez plot_pop() pour traiter les données du code pays 'CEB' dans le fichier 'ind_pop_data.csv'.
  • Appelez plot_pop() pour traiter les données du code pays 'ARB' dans le fichier 'ind_pop_data.csv'.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Define plot_pop()
def ____(____, ____):

    # Initialize reader object: urb_pop_reader
    urb_pop_reader = pd.read_csv(filename, chunksize=1000)

    # Initialize empty DataFrame: data
    data = pd.DataFrame()
    
    # Iterate over each DataFrame chunk
    for df_urb_pop in urb_pop_reader:
        # Check out specific country: df_pop_ceb
        df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == country_code]

        # Zip DataFrame columns of interest: pops
        pops = zip(df_pop_ceb['Total Population'],
                    df_pop_ceb['Urban population (% of total)'])

        # Turn zip object into list: pops_list
        pops_list = list(pops)

        # Use list comprehension to create new DataFrame column 'Total Urban Population'
        df_pop_ceb['Total Urban Population'] = [int(tup[0] * tup[1] * 0.01) for tup in pops_list]
        
        # Concatenate DataFrame chunk to the end of data: data
        data = pd.concat([data, df_pop_ceb])

    # Plot urban population data
    data.plot(kind='scatter', x='Year', y='Total Urban Population')
    plt.show()

# Set the filename: fn
fn = 'ind_pop_data.csv'

# Call plot_pop for country code 'CEB'


# Call plot_pop for country code 'ARB'
Modifier et exécuter le code