Python Dataframe-вычислить среднее значение групп и хранить



Я пишу на Python. Фрейм данных full_df имеет функции: building_id и log_price. Я хочу вычислить среднее значение log_price, сгруппированное по building_idи новую функцию mean_log_priceв full_df, созданную, храня среднее значение log_priceсогласно его building_id.



У меня есть следующий код:



    full_df['mean_log_price'] = full_df.groupby(['building_id'],as_index=False).agg(np.mean)['log_price']


Однако, когда я смотрю в full_df, некоторые значения для mean_log_price являются NaN, и некоторые значения неверны после того, как я сделаю некоторую проверку. Почему это происходит и каковы альтернативные методы? Заранее спасибо.

487   1  

1 ответ:

agg изменит длину результата и уничтожит индекс, поэтому вы не получите правильный результат, назначив меньший объект большему фрейму данных. Здесь вам нужен transform, который сохраняет длину и индекс ряда, чтобы он мог быть назначен обратно в фрейм данных:

full_df['mean_log_price'] = full_df.groupby('building_id')['log_price'].transform('mean')

Comments

    Ничего не найдено.