Как определить самые большие средние абсолютные ошибки в кадре данных? - PullRequest
0 голосов
/ 21 января 2020

Упрощенно, моя проблема заключается в следующем. У меня есть 3 разных столбца и 6 строк:

A   B   C
g   1   2 
h   2   1
j   3   3
h   3   3
g   4   3
j   5   4

Первое, что я хотел сделать, это вычислить среднее значение B, медиану и режим с учетом группы A. Итак, я сделал это, и пока все хорошо:

aggregations_diag = ('mean', 'median', lambda x: x.mode().iloc[0])
groupy_diag = df.groupby('A', as_index=False)['B'].agg(aggregations_diag) 

Затем я хотел создать новый столбец, представляющий вычисление средней абсолютной ошибки для каждой из строк между B и средним значением * 1013. *, учитывая, что среднее значение варьируется для каждой группы.

И так:

def absolute_error_diag(x): 
    stats = ['mean', 'median', 'mode']
    avg = groupy_diag.loc[x['A'], stats] 
    return (avg - x['B'])

# Columns for the absolute error of each row
columns_names_diag = ['ae_diag_mean','ae_diag_median','ae_diag_mode']

df[columns_names_diag] = df.apply(absolute_error_diag, axis=1)

[MAE_diag_mean, MAE_diag_median, MAE_diag_mode] = 
df[columns_names_diag].sum()/len(df['ae_diag_mean'])

Однако теперь я хочу посмотреть, какие группы А имеют наибольшие ошибки в порядке признать, что группы, которые имеют самые большие ошибки. Итак, есть какой-нибудь простой способ иметь «таблицу» со всеми ошибками, связанными с соответствующим кодом (столбец A)? От самой большой ошибки до самой маленькой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...