CommencerCommencer gratuitement

Écrire un itérateur pour charger les données par blocs (4)

Dans les exercices précédents, vous n’avez traité que les données du premier bloc de DataFrame. Cette fois, vous allez agréger les résultats sur l’ensemble des blocs de DataFrame du jeu de données. Autrement dit, vous allez maintenant traiter tout le jeu de données. C’est pratique, car vous pourrez traiter un jeu de données volumineux en travaillant simplement sur de plus petites portions !

Vous allez utiliser les données de 'ind_pop_data.csv', disponible dans votre répertoire actuel. Les packages pandas et matplotlib.pyplot ont été importés sous les alias pd et plt pour vous.

Cet exercice fait partie du cours

Boîte à outils Python

Afficher le cours

Instructions

  • Initialisez un DataFrame vide data à l’aide de pd.DataFrame().
  • Dans la boucle for, itérez sur urb_pop_reader afin de traiter tous les blocs de DataFrame du jeu de données.
  • Concaténez data et df_pop_ceb en passant une liste des DataFrames à pd.concat().

Exercice interactif pratique

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

# Initialize reader object: urb_pop_reader
urb_pop_reader = pd.read_csv('ind_pop_data.csv', chunksize=1000)

# Initialize empty DataFrame: data
data = ____

# Iterate over each DataFrame chunk
for df_urb_pop in ____:

    # Check out specific country: df_pop_ceb
    df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == 'CEB']

    # 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 = ____

# Plot urban population data
data.plot(kind='scatter', x='Year', y='Total Urban Population')
plt.show()
Modifier et exécuter le code