PySpark ile Özellik Mühendisliği
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|
Analizimiz için birden çok alan gereksiz
'NO' otomatik oluşturulan kayıt numarası'UNITNUMBER' alakasız veri'CLASS' tamamen sabit drop(*cols)
*cols – silinecek sütun adı veya sütun adları listesi.# Silinecek sütunların listesi cols_to_drop = ['NO', 'UNITNUMBER', 'CLASS']# Sütunları sil df = df.drop(*cols_to_drop)
where(condition)types.BooleanType bir Column veya bir SQL ifade dizesi.like(other)~df = df.where(~df['POTENTIALSHORTSALE'].like('Not Disclosed'))
Veriyi ortalamanın (μ) üç standart sapması (3σ) içinde filtrele

# Filtrelemede kullanılacak değerleri hesapla std_val = df.agg({'SALESCLOSEPRICE': 'stddev'}).collect()[0][0] mean_val = df.agg({'SALESCLOSEPRICE': 'mean'}).collect()[0][0]# Veri için üç standart sapma (μ ± 3σ) alt ve üst sınırları oluştur hi_bound = mean_val + (3 * std_val) low_bound = mean_val - (3 * std_val)# DataFrame'i değerler arasında where() ile filtrele df = df.where((df['LISTPRICE'] < hi_bound) & (df['LISTPRICE'] > low_bound))
DataFrame.dropna()
how: 'any' veya 'all'. 'any' ise, herhangi bir null içeriyorsa kaydı sil. 'all' ise, tüm değerleri null ise kaydı sil.thresh: int, varsayılan None. Belirtilirse, thresh'ten az null-olmayan değeri olan kayıtları siler. Bu, how parametresini geçersiz kılar.subset: dikkate alınacak sütun adlarının isteğe bağlı listesi.# NULL içeren tüm kayıtları sil df = df.dropna()# LISTPRICE ve SALESCLOSEPRICE her ikisi de NULL ise kayıtları sil df = df.dropna(how='all', subset['LISTPRICE', 'SALESCLOSEPRICE '])# En az iki sütunu NULL olan kayıtları sil df = df.dropna(thresh=2)
Yinelenen nedir?
dropDuplicates()
# Tüm DataFrame df.dropDuplicates()# Yalnızca bir sütun listesini kontrol et df.dropDuplicates(['streetaddress'])
PySpark ile Özellik Mühendisliği