Как улучшить вывод функции Python для сгруппированных столбцов
Я написал функцию для печати вывода, например PROC SUMMARY в python, но нуждается в некоторой помощи в улучшении вывода:
Вот этот код :
деф wmean_grouped2 (группы, var_name_in, var_name_weight):
d = Группа[var_name_in]
w = группа[var_name_weight]
возвращение (д * ш).сумма() / Вт.сумма()
Нам библиотеки и функции = { "значит" : НП.значит ,
"сумма" : np.sum ,
"граф" : НП.count_nonzero }
деф my_summary2 (
данные ,
var_names_in ,
var_names_out ,
var_functions ,
var_name_weight = нет ,
var_names_group = нет ):
результат = pd.DataFrame()
если var_names_group - это None:
сгруппированные = сведения.метод groupBy (лямбда-х: правда)
еще:
сгруппированные = сведения.метод groupBy (var_names_group)
для var_name_in, var_name_out, var_function в \
молния(var_names_in,var_names_out,var_functions):
если var_function == "wsum":
с func = лямбда х : wmean_grouped2 (х, var_name_in, var_name_weight)
результат[var_name_out] = ПД.Серия(сгруппированные.применять(изм))
еще:
с func = нам библиотеки и функции[var_function]
результат[var_name_out] = сгруппированы[var_name_in].применять(изм)
результат.Лок['итог'] = результат.select_dtypes(др.НП.номер).сумма()
возвращаемый результат
А ниже приведен код для вызова вышеуказанной функции:
инт(my_summary2 (
данные=df,
var_names_in=["сал","сал"] ,
var_names_out=[
"ГРАФ","САЛ"
] ,
var_functions=["количество","сумма"] ,
var_name_weight="val_1" ,
var_names_group=['имя','возраст']
))
Здесь я группируюсь по двум столбцам "имя" и "возраст", а ниже-результат, который я получаю :
ГРАФ САЛ
(Арик, 32) 1 100
(Дэвид, 44) 2 260
(Иоанн, 33) 1 200
(Иоанн, 34) 1 300
(Петр, 33) 1 100
Итого 6 960
В выходных данных оба сгруппированных столбца печатаются в скобках без заголовка столбца имени и возраста. Я хочу получить ниже вывода:
имя возраст считать сал
----------------------
Арик 32 1 100
Давид 44 2 260
Иоанна 33 1 200
Иоанна 34 1 300
Петр 33 1 100
----------------------
Итого 6 960
Что я уже пробовал:
Я уже упоминал в вышеприведенном разделе, Что я пробовал и что мне требовалось.