Drills tagged with this skill, unpassed first. Pass them all to mark the skill ready for scenarios.
complete_rows(df) that returns rows where no column has a NaN.
Example. A row with NaN in any single column is dropped, even if all other columns are filled.
Notes. No NaNs anywhere → all rows kept. Every row has at least one NaN → empty DataFrame.age entries; fill them with a default so downstream math doesn't break.
Your task. Write fill_missing_ages(df, default) that returns a new DataFrame where NaN values in the age column are replaced with default. Other columns are untouched.
Example. age [30, NaN, 25, NaN], default=0 → [30, 0, 25, 0].
Notes. Only the age column is modified. df with no NaN in age → unchanged.nan_counts(df) that returns a Series indexed by column name, with the count of NaN values in each column.
Example. A df with 2 NaN in age and 1 NaN in city → {age: 2, city: 1, name: 0}.
Notes. Include columns with zero NaN. Empty df → Series with one zero per column.