Psaní iterátoru pro načítání dat po částech (3)
Načítání a zpracování dat po částech ti jde stále lépe. Pojďme tvoje dovednosti posunout o krok dál — tentokrát přidáme do DataFrame nový sloupec.
Navážeš na kód z předchozího cvičení a pomocí list comprehension vytvoříš hodnoty pro nový sloupec 'Total Urban Population' ze seznamu n-tic, který jsi sestavil/a dříve. Z předchozího cvičení víš, že první a druhý prvek každé n-tice odpovídají hodnotám ze sloupců 'Total Population' a 'Urban population (% of total)'. Hodnoty v novém sloupci 'Total Urban Population' jsou tedy součinem prvního a druhého prvku každé n-tice. Protože druhý prvek vyjadřuje procenta, je potřeba celý výsledek vydělit 100, nebo ho vynásobit hodnotou 0.01.
Data z tohoto nového sloupce pak vykreslíš do grafu, který znázorní vývoj městského obyvatelstva.
Balíčky pandas a matplotlib.pyplot jsou již naimportované jako pd a plt.
Toto cvičení je součástí kurzu
Python Toolbox
Pokyny k cvičení
- Napiš list comprehension, které ze seznamu
pops_listvygeneruje hodnoty pro nový sloupec'Total Urban Population'. Výstupní výraz má být součinem prvního a druhého prvku každé n-tice vpops_list. Protože druhý prvek vyjadřuje procenta, výsledek ještě vynásob hodnotou0.01nebo ho vyděl100. Dále nezapomeň, že sloupec'Total Urban Population'má obsahovat pouze celá čísla — zajisti to přetypováním výstupního výrazu na celé číslo pomocíint(). - Vytvoř bodový graf, kde osa x zobrazuje hodnoty ze sloupce
'Year'a osa y hodnoty ze sloupce'Total Urban Population'.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()