使用 Python 篩選欄位內容
你已經練習過在 DataFrame 欄位上使用各種操作,現在要來實際修改一個資料集。DataFrame voter_df 包含過去幾年達拉斯市議會投票人的相關資訊。這個經過截短的 DataFrame 包含投票日期、投票者的姓名與職稱。你的主管要你清理這份資料,以便之後整合到需要的報表中。主要任務是移除任何 null 條目或奇怪字元,並回傳一組特定的投票者,讓你可以驗證他們的資訊。
這通常是資料清理的第一步之一——先移除明顯不符合格式的內容。對這個資料集來說,請查看原始資料,找出 VOTER_NAME 欄位中看起來不對勁的項目。
pyspark.sql.functions 函式庫已以別名 F 匯入。
本練習屬於課程
使用 PySpark 清理資料
練習說明
- 顯示不同的(distinct)
VOTER_NAME條目。 - 篩選
voter_df,僅保留VOTER_NAME長度為 1–20 個字元的資料。 - 進一步篩掉
VOTER_NAME含有_的列。 - 再次顯示不同的(distinct)
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)