ÎncepețiÎncepe gratuit

Scrierea unui iterator pentru încărcarea datelor în fragmente (4)

În exercițiile anterioare, ai procesat doar datele din primul fragment de DataFrame. De această dată, vei agrega rezultatele din toate fragmentele de DataFrame ale setului de date. Practic, vei procesa acum întregul set de date. E un lucru grozav, deoarece poți procesa un set de date mare lucrând doar cu bucăți mai mici din el!

Vei folosi datele din 'ind_pop_data.csv', disponibil în directorul curent. Pachetele pandas și matplotlib.pyplot au fost importate ca pd, respectiv plt.

Acest exercițiu face parte din cursul

Cutia cu instrumente Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Inițializează un DataFrame gol data folosind pd.DataFrame().
  • În bucla for, iterează peste urb_pop_reader pentru a putea procesa toate fragmentele de DataFrame din setul de date.
  • Concatenează data și df_pop_ceb transmițând o listă cu cele două DataFrame-uri către pd.concat().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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()
Editează și rulează codul