开始使用免费开始使用

从海量 Twitter 数据中提取信息

上一个练习中,您已成功将文件按块读取,做得很好。您现在已经知道在需要处理超大文件时如何应对,这是一项非常实用的技能!

把文件拆成更小、更易管理的块来处理固然不错,但如果每次做同样的任务都要重复写相同的代码,就会变得很繁琐。在本练习中,您将把上一个练习的工作放入一个函数定义中,使代码更具"可复用性"。

已将 pandas 包导入为 pd,并且文件 'tweets.csv' 已位于您当前的目录中,供您使用。

本练习是课程的一部分

Python 工具箱

查看课程

练习说明

  • 定义函数 count_entries(),它有 3 个参数。第 1 个参数 csv_file 表示文件名,第 2 个参数 c_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)
编辑并运行代码