ПочатиПочніть безкоштовно

Створення ітератора для завантаження даних частинами (4)

У попередніх вправах ви опрацьовували дані лише з першого фрагмента датафрейму. Цього разу ви агрегуєте результати по всіх фрагментах датафрейму в наборі даних. Тобто тепер ви опрацьовуватимете увесь набір даних. Це зручно, адже ви зможете обробити великий набір даних, працюючи лише з його меншими частинами!

Ви працюватимете з даними з файлу 'ind_pop_data.csv', який доступний у вашому поточному каталозі. Пакети pandas та matplotlib.pyplot вже імпортовано як pd і plt відповідно — можете їх використовувати.

Ця вправа є частиною курсу

Набір інструментів Python

Переглянути курс

Інструкції до вправи

  • Ініціалізуйте порожній датафрейм data за допомогою pd.DataFrame().
  • У циклі for ітеруйтеся по urb_pop_reader, щоб опрацювати всі фрагменти датафрейму в наборі даних.
  • Об'єднайте data та df_pop_ceb, передавши список датафреймів у 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()
Редагувати та запускати код