Rekayasa Fitur dengan PySpark
John Hogue
Lead Data Scientist, General Mills

df.select(['NO', 'UNITNUMBER', 'CLASS']).show()
+----+----------+-----+
| NO|UNITNUMBER|CLASS|
+----+----------+-----+
| 1| null| SF|
| 156| A8| SF|
| 157| 207| SF|
| 158| 701G| SF|
| 159| 36| SF|
Beberapa field tidak diperlukan untuk analisis kita
'NO' nomor rekaman otomatis'UNITNUMBER' data tidak relevan'CLASS' nilainya konstan drop(*cols)
*cols – nama kolom atau daftar nama kolom yang akan dihapus.# Daftar kolom yang akan dihapus cols_to_drop = ['NO', 'UNITNUMBER', 'CLASS']# Hapus kolom df = df.drop(*cols_to_drop)
where(condition)types.BooleanType atau string ekspresi SQL.like(other)~df = df.where(~df['POTENTIALSHORTSALE'].like('Not Disclosed'))
Saring data dalam tiga simpangan baku (3σ) dari mean (μ)

# Hitung nilai untuk penyaringan std_val = df.agg({'SALESCLOSEPRICE': 'stddev'}).collect()[0][0] mean_val = df.agg({'SALESCLOSEPRICE': 'mean'}).collect()[0][0]# Buat batas atas dan bawah tiga simpangan baku (μ ± 3σ) hi_bound = mean_val + (3 * std_val) low_bound = mean_val - (3 * std_val)# Gunakan where() untuk memfilter DataFrame di antara nilai batas df = df.where((df['LISTPRICE'] < hi_bound) & (df['LISTPRICE'] > low_bound))
DataFrame.dropna()
how: 'any' atau 'all'. Jika 'any', hapus rekaman yang memiliki nilai null apa pun. Jika 'all', hapus hanya jika semua nilainya null.thresh: int, default None. Jika ditentukan, hapus rekaman yang memiliki kurang dari thresh nilai non-null. Ini menimpa parameter how.subset: daftar opsional nama kolom yang dipertimbangkan.# Hapus rekaman mana pun dengan nilai NULL df = df.dropna()# Hapus rekaman jika LISTPRICE dan SALESCLOSEPRICE keduanya NULL df = df.dropna(how='all', subset['LISTPRICE', 'SALESCLOSEPRICE '])# Hapus rekaman jika setidaknya dua kolom bernilai NULL df = df.dropna(thresh=2)
Apa itu duplikat?
dropDuplicates()
# Seluruh DataFrame df.dropDuplicates()# Periksa hanya daftar kolom df.dropDuplicates(['streetaddress'])
Rekayasa Fitur dengan PySpark