开始使用免费开始使用

编写迭代器按块加载数据(4)

在前面的练习中,您只处理了第一个 DataFrame 数据块。本次,您将对数据集中的所有 DataFrame 数据块进行汇总聚合。也就是说,您现在将处理整个数据集。这很好,因为您只需逐块处理更小的片段,就能完成对大型数据集的完整处理!

您将使用当前目录中的 'ind_pop_data.csv' 数据。pandasmatplotlib.pyplot 已分别以 pdplt 的别名导入,供您使用。

本练习是课程的一部分

Python 工具箱

查看课程

练习说明

  • 使用 pd.DataFrame() 初始化一个空的 DataFrame data
  • for 循环中,迭代 urb_pop_reader,以处理数据集中的所有 DataFrame 数据块。
  • 通过向 pd.concat() 传入包含这些 DataFrame 的列表来拼接 datadf_pop_ceb

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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()
编辑并运行代码