# No garage values means no year, area or cars for col in ['GarageYrBlt', 'GarageArea', 'GarageCars']: df[col] = df[col].fillna(0)
# No garage info means you don't have one for col in ['GarageType', 'GarageFinish', 'GarageQual', 'GarageCond']: df[col] = df[col].fillna('None')
# Fill no basement for col in ['BsmtQual', 'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinType2']: df[col] = df[col].fillna('None')
# Fill remaining categorical and numerical cols with None and 0 cat_columns = df.select_dtypes('object').columns num_columns = [i for i in list(df.columns) if i not in cat_columns] df.update(df[cat_columns].fillna('None')) df.update(df[num_columns].fillna(0))