ジェネレーターを使ってデータをチャンク単位で読み込む(3)
素晴らしいです!大きなファイルの処理に役立つジェネレーター関数を作成できました。
次は、作成したジェネレーター関数を使って、これまでと同様に世界銀行のデータセットを処理しましょう。ファイルを1行ずつ読み込みながら、データセットの列に各国名が何回登場するかをカウントする辞書を作成します。今回は1000行だけでなく、データセット全体を処理します!
ジェネレーター関数 read_large_file() と CSV ファイル 'world_dev_ind.csv' はあらかじめ読み込まれています。さっそく始めましょう!
この演習はコースの一部です
Python Toolbox
演習の手順
- コンテキストマネージャーの中で
'world_dev_ind.csv'を使い、ファイルfileをopen()に結び付けてください。 forループを完成させて、read_large_file()の呼び出しから得られるジェネレーターをイテレートし、ファイルのすべての行を処理するようにしてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Open a connection to the file
with ____ as ____:
# Iterate over the generator from read_large_file()
for line in ____:
row = line.split(',')
first_col = row[0]
if first_col in counts_dict.keys():
counts_dict[first_col] += 1
else:
counts_dict[first_col] = 1
# Print
print(counts_dict)