用 Python 过滤列内容
您已经学习了如何对 DataFrame 的列执行多种操作——现在来修改一个真实数据集。DataFrame voter_df 包含达拉斯市议会近几年选民的信息。这个截断后的 DataFrame 包含投票日期以及选民的姓名和职位。您的经理希望您清理这些数据,以便后续能整合进需要的报告中。主要任务是移除任何空值或异常字符,并返回一组特定的选民,便于您核验其信息。
这通常是数据清洗的第一步之一——删除任何明显不符合格式的内容。对于这个数据集,请务必查看原始数据,找出 VOTER_NAME 列中看起来不合适的内容。
pyspark.sql.functions 库已使用别名 F 导入。
本练习是课程的一部分
使用 PySpark 进行数据清洗
练习说明
- 显示去重后的
VOTER_NAME条目。 - 过滤
voter_df,仅保留VOTER_NAME长度为 1–20 个字符的记录。 - 过滤掉
VOTER_NAME中包含_的voter_df记录。 - 再次显示去重后的
VOTER_NAME条目。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Show the distinct VOTER_NAME entries
voter_df.select(____).distinct().show(40, truncate=False)
# Filter voter_df where the VOTER_NAME is 1-20 characters in length
voter_df = ____('length(VOTER_NAME) > 0 and length(VOTER_NAME) < 20')
# Filter out voter_df where the VOTER_NAME contains an underscore
voter_df = voter_df.filter(~ F.col('VOTER_NAME').____)
# Show the distinct VOTER_NAME entries again
voter_df.____(____).____().____(40, truncate=False)