amit1764 Ответов: 1

Как улучшить вывод функции 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

Что я уже пробовал:

Я уже упоминал в вышеприведенном разделе, Что я пробовал и что мне требовалось.

1 Ответов

Рейтинг:
0

amit1764

Не могли бы вы, пожалуйста, дать мне знать, если вы ссылаетесь на приведенную ниже ссылку для решения :

7. ввод и вывод — документация Python 3.7.0

Richard MacCutchan

Как вы думаете, зачем еще я разместил ссылку? А вы не думали пойти и прочитать его?