Создание итератора для загрузки данных по частям (3)
Вы уже привыкли читать и обрабатывать данные по частям. Теперь усложним задачу — добавим новый столбец в DataFrame.
Продолжая работу с кодом из предыдущего упражнения, вы воспользуетесь включением списка, чтобы сформировать значения для нового столбца 'Total Urban Population' из списка кортежей, который был создан ранее. Напомним: первый элемент каждого кортежа содержит значения из столбца 'Total Population', а второй — значения из столбца 'Urban population (% of total)'. Таким образом, значения нового столбца 'Total Urban Population' — это произведение первого и второго элементов каждого кортежа. Поскольку второй элемент выражен в процентах, результат нужно разделить на 100 или умножить на 0.01.
Затем вы построите график на основе данных нового столбца, чтобы визуализировать показатели городского населения.
Пакеты pandas и matplotlib.pyplot уже импортированы как pd и plt соответственно.
Это упражнение является частью курса
Инструментарий Python
Инструкции к упражнению
- Напишите включение списка, чтобы сформировать список значений из
pops_listдля нового столбца'Total Urban Population'. Выражение-результат должно представлять собой произведение первого и второго элементов каждого кортежа изpops_list. Поскольку второй элемент — это процент, результат нужно умножить на0.01или разделить на100. Обратите внимание: столбец'Total Urban Population'должен содержать только целые числа, поэтому обязательно приведите выражение-результат к целому типу с помощьюint(). - Постройте точечный график, в котором значения по оси x берутся из столбца
'Year', а по оси y — из столбца'Total Urban Population'.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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()