開始使用免費開始

撰寫疊代器以分批載入資料(4)

在前面的練習中,你只處理了第一個 DataFrame 分批區塊的資料。這次,你會將資料集中所有 DataFrame 分批區塊的結果彙整起來。也就是說,你現在會處理整個資料集。這很實用,因為你能只操作較小的片段,就完成整個大型資料集的處理!

你將使用目前目錄中的 'ind_pop_data.csv'pandasmatplotlib.pyplot 套件已分別以 pdplt 匯入,供你使用。

本練習屬於課程

Python 工具箱

檢視課程

練習說明

  • 使用 pd.DataFrame() 初始化一個空的 DataFrame data
  • for 迴圈中疊代 urb_pop_reader,以處理資料集中所有的 DataFrame 分批區塊。
  • 透過將 DataFrame 組成清單傳入 pd.concat(),把 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()
編輯並執行程式碼