Kom igångKom igång gratis

Skriva en iterator för att läsa in data i delar (3)

Nu börjar du bli van vid att läsa och bearbeta data i delar. Låt oss ta det ett steg längre genom att lägga till en kolumn i en DataFrame.

Med utgångspunkt i koden från föregående övning ska du använda en listomfattning för att skapa värdena för en ny kolumn, 'Total Urban Population', från listan med tupler som du skapade tidigare. Kom ihåg från föregående övning att det första och andra elementet i varje tupel är värden från kolumnerna 'Total Population' respektive 'Urban population (% of total)'. Värdena i den nya kolumnen 'Total Urban Population' är alltså produkten av det första och andra elementet i varje tupel. Eftersom det andra elementet är ett procentvärde behöver du dessutom dividera hela resultatet med 100, eller alternativt multiplicera det med 0.01.

Du kommer även att rita ett diagram baserat på den nya kolumnen för att visualisera data om stadsbfolkningen.

Paketen pandas och matplotlib.pyplot har importerats som pd respektive plt.

Den här övningen är en del av kursen

Python Toolbox

Visa kurs

Övningsinstruktioner

  • Skriv en listomfattning för att generera en lista med värden från pops_list till den nya kolumnen 'Total Urban Population'. Utrycksuttrycket ska vara produkten av det första och andra elementet i varje tupel i pops_list. Eftersom det andra elementet är ett procentvärde behöver du antingen multiplicera resultatet med 0.01 eller dividera det med 100. Observera även att kolumnen 'Total Urban Population' bara ska innehålla heltalsvärden. För att säkerställa detta, se till att du konverterar utrycksuttrycket till ett heltal med int().
  • Skapa ett scatter-diagram där x-axeln visar värden från kolumnen 'Year' och y-axeln visar värden från kolumnen 'Total Urban Population'.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Code from previous exercise
urb_pop_reader = pd.read_csv('ind_pop_data.csv', chunksize=1000)
df_urb_pop = next(urb_pop_reader)
df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == 'CEB']
pops = zip(df_pop_ceb['Total Population'], 
           df_pop_ceb['Urban population (% of total)'])
pops_list = list(pops)

# Use list comprehension to create new DataFrame column 'Total Urban Population'
df_pop_ceb['Total Urban Population'] = [____]

# Plot urban population data
df_pop_ceb.plot(kind=____, x=____, y=____)
plt.show()
Redigera och kör kod