Проблема при выполнении кода, включая пользовательские трансформаторы?

#python #jupyter-notebook #data-science

Вопрос:

Работая над набором данных о жилье в Калифорнии через публикацию книги О’Рейли Аурелиана Гидеона в разделе «Пользовательские трансформаторы», я запустил код ниже :-

 from sklearn.base import BaseEstimator, TransformerMixin 
rooms_ix, bedrooms_ix, population_ix, households_ix = 3, 4, 5, 6

class CombinedAttributesAdder(BaseEstimator, TransformerMixin): 
    def __init__(self, add_bedrooms_per_room = True): # no *args or **kargs 
        self.add_bedrooms_per_room = add_bedrooms_per_room
    def fit(self, X, y=None): 
        return self # nothing else to do
    def transform(self, X, y=None): 
        rooms_per_household = X[:, rooms_ix] / X[:, households_ix] 
        population_per_household = X[:, population_ix] / X[:, households_ix] 
        if self.add_bedrooms_per_room: 
            bedrooms_per_room = X[:, bedrooms_ix] / X[:, rooms_ix] 
            return np.c_[X, rooms_per_household, population_per_household, bedrooms_per_room]
    else: 
        return np.c_[X, rooms_per_household, population_per_household]
    
attr_adder = CombinedAttributesAdder(add_bedrooms_per_room=False) 
housing_extra_attribs = attr_adder.transform(housing.values)
 

Ошибка, которую я получаю, выглядит следующим образом:-

 File "<ipython-input-43-43e04d49480a>", line 16
    return np.c_[X, rooms_per_household, population_per_household]
    ^
IndentationError: expected an indented block
 

Пожалуйста, подскажите, как это исправить?

Комментарии:

1. Ваш else находится вне функции.

Ответ №1:

жилье.значения-это функция

Вы должны использовать его «данные» для выполнения задачи преобразования.

такие как

 housing["data"]