CommencerCommencer gratuitement

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

Dans les exercices précédents, vous n'avez traité que les données du premier bloc DataFrame. Cette fois, vous allez agréger les résultats sur tous les blocs DataFrame de l'ensemble de données. Cela signifie que vous allez maintenant traiter l'ensemble des données. C'est génial parce que vous allez pouvoir traiter la totalité d'un grand ensemble de données en travaillant simplement sur de plus petits morceaux !

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.

Cet exercice fait partie du cours

Boîte à outils Python

Afficher le cours

Instructions

  • Initialiser un DataFrame vide data en utilisant pd.DataFrame().
  • Dans la boucle for, itérez sur urb_pop_reader pour pouvoir traiter tous les blocs DataFrame de l'ensemble de données.
  • Concaténer data et df_pop_ceb en passant une liste de DataFrame à 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