Tworzenie iteratora do wczytywania danych we fragmentach (3)
Wczytywanie i przetwarzanie danych we fragmentach to już twój chleb powszedni. Czas pójść o krok dalej – dodasz nową kolumnę do ramki danych.
Nawiązując do kodu z poprzedniego ćwiczenia, użyjesz wyrażenia listowego, aby obliczyć wartości dla nowej kolumny 'Total Urban Population' na podstawie listy krotek, którą wcześniej wygenerowałeś. Przypomnij sobie, że pierwszy element każdej krotki to wartości z kolumny 'Total Population', a drugi – wartości z kolumny 'Urban population (% of total)'. Wartości w nowej kolumnie 'Total Urban Population' są zatem iloczynem pierwszego i drugiego elementu każdej krotki. Ponieważ drugi element wyraża procent, cały wynik należy podzielić przez 100 lub alternatywnie pomnożyć przez 0.01.
Na koniec zwizualizujesz dane z nowej kolumny na wykresie.
Biblioteki pandas i matplotlib.pyplot zostały już zaimportowane odpowiednio jako pd i plt.
To ćwiczenie jest częścią kursu
Zestaw narzędzi Pythona
Instrukcje do ćwiczenia
- Napisz wyrażenie listowe, które wygeneruje listę wartości z
pops_listdla nowej kolumny'Total Urban Population'. Wyrażenie wyjściowe powinno być iloczynem pierwszego i drugiego elementu każdej krotki zpops_list. Ponieważ drugi element wyraża procent, pomnóż wynik przez0.01lub podziel go przez100. Pamiętaj też, że kolumna'Total Urban Population'powinna przechowywać wyłącznie liczby całkowite – zadbaj o to, rzutując wyrażenie wyjściowe na typ całkowity za pomocąint(). - Utwórz wykres punktowy (scatter), w którym wartości z kolumny
'Year'znajdą się na osi x, a wartości z kolumny'Total Urban Population'– na osi y.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()