Я нашел в этом ответе , как агрегировать больше статистических данных в мою функцию описания фрейма данных, но мне не удалось заставить ее работать, когда мой фрейм данных сгруппирован по столбцу.
Например.Это прекрасно работает:
df_var_desc_gr = df_var_desc.groupby(['ethnicity_source_value']).count().reset_index()
df_var_desc_gr.head()
stats = df_var_desc_gr.describe()
stats.loc['IQR'] = stats.loc['75%'] - stats.loc['25%']
stats = stats.append(df_var_desc_gr.reindex(stats.columns, axis=1).agg(['skew', 'mad', 'kurt']))
display(stats.T.reset_index())
Вывод:
index count mean std min 25% 50% 75% max IQR skew mad kurt
0 concept_name 24.0 257.0 312.998819 10.0 67.5 122.5 366.5 1230.0 299.0 2.021287 227.0 3.911094
Но как я могу сделать то же самое (приложение IRQ
, skew
, mad
, kurt
и т. Д.) в сгруппированном кадре данных, как показано ниже:
df_var_desc_gr.groupby(['ethnicity_source_value'])['concept_name'].describe().reset_index()
Вывод:
ethnicity_source_value count mean std min 25% 50% 75% max
0 african 1.0 17.0 NaN 17.0 17.0 17.0 17.0 17.0
1 american 1.0 153.0 NaN 153.0 153.0 153.0 153.0 153.0
2 american_indian 1.0 68.0 NaN 68.0 68.0 68.0 68.0 68.0
3 arab 1.0 10.0 NaN 10.0 10.0 10.0 10.0 10.0
4 asian_indian 1.0 36.0 NaN 36.0 36.0 36.0 36.0 36.0
5 central_american 1.0 202.0 NaN 202.0 202.0 202.0 202.0 202.0