EXERCISE 1: first three source rows id name age height_cm weight_kg city score 1 Alice 29.0 165.0 68.0 New York 85.0 2 Bob NaN 172.0 NaN Los Angeles 90.0 3 Charlie 35.0 168.0 72.0 Chicago NaN EXERCISE 2: missing values before cleaning id 0 name 0 age 3 height_cm 1 weight_kg 1 city 0 score 2 drop: 2 rows, 0 missing cells id name age height_cm weight_kg city score 1 Alice 29.0 165.0 68.0 New York 85.0 5 Eva 27.0 160.0 55.0 New York 88.0 mean: 7 rows, 0 missing cells id name age height_cm weight_kg city score 1 Alice 29.00 165.0 68.0 New York 85.0 2 Bob 30.25 172.0 70.0 Los Angeles 90.0 3 Charlie 35.00 168.0 72.0 Chicago 86.0 4 David 30.25 167.0 80.0 Houston 75.0 5 Eva 27.00 160.0 55.0 New York 88.0 6 Frank 30.00 175.0 85.0 Los Angeles 86.0 7 Grace 30.25 162.0 60.0 Chicago 92.0 mode: 7 rows, 0 missing cells id name age height_cm weight_kg city score 1 Alice 29.0 165.0 68.0 New York 85.0 2 Bob 27.0 172.0 55.0 Los Angeles 90.0 3 Charlie 35.0 168.0 72.0 Chicago 75.0 4 David 27.0 160.0 80.0 Houston 75.0 5 Eva 27.0 160.0 55.0 New York 88.0 6 Frank 30.0 175.0 85.0 Los Angeles 75.0 7 Grace 27.0 162.0 60.0 Chicago 92.0 Observed means: {"age": 30.25, "height_cm": 167.0, "score": 86.0, "weight_kg": 70.0} EXERCISES 3-5: logged pipeline with factory transforms id name age height_cm weight_kg city score 1 alice 0.250000 0.333333 0.433333 new york 0.588235 2 bob 0.406250 0.800000 0.500000 los angeles 0.882353 3 charlie 1.000000 0.533333 0.566667 chicago 0.647059 4 david 0.406250 0.466667 0.833333 houston 0.000000 5 eva 0.000000 0.000000 0.000000 new york 0.764706 6 frank 0.375000 1.000000 1.000000 los angeles 0.647059 7 grace 0.406250 0.133333 0.166667 chicago 1.000000 Saved cleaned_drop.csv, cleaned_mean.csv, cleaned_mode.csv, pipeline_output.csv