Создание итератора для загрузки данных по частям (4)
В предыдущих упражнениях вы обрабатывали только данные из первого фрагмента DataFrame. На этот раз вы будете агрегировать результаты по всем фрагментам DataFrame в наборе данных — то есть обрабатывать весь набор данных целиком. Это очень удобно: вы сможете работать с большим набором данных, разбив его на небольшие части!
Вы будете использовать данные из файла 'ind_pop_data.csv', доступного в вашем текущем каталоге. Пакеты pandas и matplotlib.pyplot уже импортированы как pd и plt соответственно.
Это упражнение является частью курса
Инструментарий Python
Инструкции к упражнению
- Инициализируйте пустой DataFrame
dataс помощьюpd.DataFrame(). - В цикле
forвыполните итерацию поurb_pop_reader, чтобы обработать все фрагменты DataFrame в наборе данных. - Объедините
dataиdf_pop_ceb, передав список этих DataFrame'ов в функциюpd.concat().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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()