Как представить в Jinja2 нотацию groupedby dataframe в html-шаблоне в Django
В Django view у меня есть функция, в которой я получаю dataframe из QuerySet.
def owner_observation_count(request):
form = ReportForm(request.GET)
context = {}
if form.is_valid():
organisation = form.cleaned_data['organisation']
department_for_report = form.cleaned_data['department_for_report']
employee_total = Observation.objects.values('owner__last_name','owner__first_name', 'date_created__year','date_created__month').annotate(owner_count_2=Count('owner_id'))
if organisation:
employee_total = employee_total.filter(users_organization=organisation)
if department_for_report:
employee_total = employee_total.filter(users_department=department_for_report)
employee_total_pd = pd.DataFrame.from_dict(employee_total)
employee_total_pd["Emploeey"] = employee_total_pd["owner__last_name"].str.cat(' '
+ employee_total_pd["owner__first_name"].str.get(0) + '.')
employee_total_pd = employee_total_pd.drop('owner__last_name', axis=1)
employee_total_pd = employee_total_pd.drop('owner__first_name', axis=1)
emp_columns = {'date_created__year': 'Year',
'date_created__month': 'Month',
'owner_count_2': 'Qty'}
employee_total_pd.rename(columns=emp_columns, inplace=True)
, что дает результат
| Год | Месяц | Количество | Сотрудник | |------|-------|-----|------------| | 2023 | 6 | 2 |Kefer A. | | 2023 | 9 | 1 |Напылов С. | | 2023 | 6 | 2 |Грошева Н. | | 2023 | 9 | 3 |Сапего Г. | | 2023 | 8 | 3 |Данилин С.| | 2023 | 8 | 2 |Алексеева Л.| | 2023 | 8 | 2 |Смирнова Е. | | 2023 | 7 | 1 |Шарипов Р.| | 2023 | 9 | 14 |Лялина Л. | | 2024 | 8 | 2 |Хусаинов С. | | 2024 | 8 | 3 |Качанова Т.| | 2024 | 8 | 6 |Чистова В. | | 2024 | 6 | 1 |Вишняков М. | 2024 | 6 | 3 |Качан А. | | 2024 | 8 | 4 |Крохмалюк Е. | 2024 | 8 | 2 |Сафеев Н.| | 2024 | 8 | 4 |Воробьева Н. |
затем я сгруппировал кадры данных
employee_ready_pd = pd.crosstab(employee_total_pd.Emploeey, [employee_total_pd.Year, employee_total_pd.Month],
values=employee_total_pd.Qty, aggfunc='sum', margins=True, margins_name="Итого").fillna(0)
и получил такой результат
затем я передаю его в контекст
context.update({'emp_pd': employee_total_pd})
context['form'] = form
return render(request, 'observations/reports.html', context)
Именно по такому схожему сгруппированному способу я хотел бы получить его на HTML-странице. Как правильно отобразить это с помощью тегов Jinja2?
{% for item in emp_pd %}
....
{% endfor %}
Спасибо за аванс!