Feature Engineering com PySpark
John Hogue
Lead Data Scientist, General Mills
Coleta de dados
Regras de armazenamento de dados
Junção de dados díspares
Ausência intencional

Completamente ausentes ao acaso
Ausentes ao acaso
Ausentes não ao acaso
Quando excluir linhas com dados ausentes?
isNull()
df.where(df['ROOF'].isNull()).count()
765
# Import library import seaborn as sns# subset the dataframe sub_df = df.select(['ROOMAREA1'])# sample the dataframe sample_df = sub_df.sample(False, .5, 4)# Convert to Pandas DataFrame pandas_df = sample_df.toPandas()# Plot it sns.heatmap(data=pandas_df.isnull())

Processo de substituir valores ausentes
Baseado em regras
Baseado em estatística
Baseado em modelo
** fillna(value, subset=None)
value: valor para substituir ausentessubset: lista de colunas onde substituir ausentes# Substituir ausentes por zero
df.fillna(0, subset=['DAYSONMARKET'])
# Substituir pela média da coluna
col_mean = df.agg({'DAYSONMARKET': 'mean'}).collect()[0][0]
df.fillna(col_mean, subset=['DAYSONMARKET'])
Feature Engineering com PySpark