開始使用免費開始

從大量 Twitter 資料中擷取資訊

上一題你已經把檔案分成多個分塊來處理,做得很好。你現在知道如何在需要處理非常大的檔案時應對,這是非常實用的技能!

把檔案拆成較小、較好管理的分塊固然重要,但如果每次做同樣的工作都要重寫相同的程式碼,就會變得很繁瑣。在這一題中,你會把上一題的做法包進一個「函式定義」中,讓你的程式碼更「可重複使用」。

已經為你將 pandas 套件匯入為 pd,而且 'tweets.csv' 檔案也在你目前的目錄裡,可以直接使用。

本練習屬於課程

Python 工具箱

檢視課程

練習說明

  • 定義函式 count_entries(),它有 3 個參數。第一個參數 csv_file 表示檔名,第二個 c_size 表示分塊大小(chunk size),最後一個 colname 表示欄位名稱。
  • 使用 for 迴圈疊代 csv_file 指定的檔案。使用迴圈變數 chunk,對 pd.read_csv() 的呼叫進行疊代,並將 c_size 傳給 chunksize
  • 在內層迴圈中,使用 for 迴圈疊代 chunk 中由 colname 指定的欄位。使用迴圈變數 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)
編輯並執行程式碼