始める無料で始める

大量のTwitterデータから情報を抽出する

前の演習ではファイルをうまくチャンクに分割できました。非常に大きなファイルを処理する際の対処法を習得できました。これはとても役立つスキルです!

ファイルをより小さく扱いやすいチャンクに分けて処理する方法がわかりました。ただし、同じタスクに対して毎回同じコードを書き直すのは非常に手間がかかります。この演習では、前の演習で書いたコードを関数定義にまとめることで、コードをより再利用しやすくします。

pandasパッケージは pd としてインポート済みで、ファイル 'tweets.csv' は現在のディレクトリにあります。

この演習はコースの一部です

Python Toolbox

コースを見る

演習の手順

  • 3つのパラメータを持つ関数 count_entries() を定義してください。1つ目のパラメータはファイル名を受け取る csv_file、2つ目はチャンクサイズを受け取る c_size、3つ目は列名を受け取る colname です。
  • csv_file ループを使って for のファイルを繰り返し処理してください。ループ変数に chunk を使い、pd.read_csv() の呼び出しをイテレートします。このとき c_sizechunksize を渡してください。
  • 内側のループでは、colname ループを使って chunk 内の for で指定された列をイテレートしてください。ループ変数に entry を使います。
  • ファイル名 count_entries()、チャンクサイズ 'tweets.csv'、カウントする列名 10 を渡して 'lang' 関数を呼び出してください。呼び出しの結果を変数 result_counts に代入してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define count_entries()
def ____():
    """Return a dictionary with counts of
    occurrences as value for each key."""
    
    # Initialize an empty dictionary: counts_dict
    counts_dict = {}

    # Iterate over the file chunk by chunk
    for ____ in ____:

        # Iterate over the column in DataFrame
        for ____ in ____:
            if entry in counts_dict.keys():
                counts_dict[entry] += 1
            else:
                counts_dict[entry] = 1

    # Return counts_dict
    return counts_dict

# Call count_entries(): result_counts
result_counts = ____

# Print result_counts
print(result_counts)
コードを編集して実行