データをチャンクで読み込むイテレーターの作成(2)
前の演習では、read_csv() を使って大きなデータセットから DataFrame のチャンクを読み込みました。この演習では、より大きなチャンクサイズでファイルを読み込み、最初のチャンクのデータを処理します。
データを処理するには、特定の国の行だけで構成された新しい DataFrame を作成します。次に、その DataFrame の 'Total Population' と 'Urban population (% of total)' という2つの列を zip でまとめます。最後に、zip オブジェクトからタプルのリストを作成します。各タプルは、前述の2つの列それぞれの値で構成されます。
現在のディレクトリにある 'ind_pop_data.csv' のデータを使用します。pandas は pd としてインポート済みです。
この演習はコースの一部です
Python Toolbox
演習の手順
pd.read_csv()を使って'ind_pop_data.csv'をチャンクサイズ1000で読み込みましょう。結果をurb_pop_readerに代入します。- イテラブル
urb_pop_readerから最初の DataFrame チャンクを取得し、df_urb_popに代入しましょう。 df_urb_popの中から'CountryCode'が'CEB'である行だけを選択しましょう。そのためには、df_urb_pop['CountryCode']の角括弧の中で'CEB'がdf_urb_pop[____]と等しいかどうかを比較します。zip()を使って、'Total Population'の'Urban population (% of total)'列とdf_pop_ceb列を zip でまとめましょう。作成された zip オブジェクトをpopsに代入します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Initialize reader object: urb_pop_reader
urb_pop_reader = pd.read_csv(____, ____)
# Get the first DataFrame chunk: df_urb_pop
df_urb_pop = next(____)
# Check out the head of the DataFrame
print(df_urb_pop.head())
# Check out specific country: df_pop_ceb
df_pop_ceb = df_urb_pop[____]
# Zip DataFrame columns of interest: pops
pops = zip(____, ____)
# Turn zip object into list: pops_list
pops_list = list(pops)
# Print pops_list
print(pops_list)