{%- set style_index_value = style_index_value or '' -%} {%- set n_headers = df.index.names.__len__() + df.columns.__len__() -%} {%- set n_indexes = df.index.names|length -%} {%- set is_multi_index = df.index.nlevels > 1 -%} {%- set is_multi_columns = df.columns.nlevels > 1 -%} {%- set column_tuples = df.columns.tolist() -%} {#- Fill first with empty values (placeholder for index names below) -#} {%- for n_level in range(df.columns.nlevels) -%} {%- set level = df.columns.get_level_values(n_level) %} {# Fill first with empty values (placeholder for index names below) #} {%- for _ in range(n_indexes-1) -%} {% endfor -%} {#- Set the actual column values -#} {% for header in level -%} {%- set span = get_span(column_tuples, loc=loop.index0, width=n_level if is_multi_columns else none) -%} {%- set is_last_group_column = is_last_group_row(loop.index0, df.columns, level=n_level) -%} {%- if span > 0 %} {%- endif -%} {% endfor %} {% endfor %} {# Last header row is the index names #} {%- for index_header in df.index.names -%} {% endfor %} {#- Fill rest to empty values -#} {%- for _ in df.columns -%} {%- set is_last_group_column = is_last_group_row(loop.index0, df.columns) -%} {% endfor %} {%- set index_tuples = df.index.tolist() -%} {% for idx, row in df.iterrows() -%} {%- set idx = [idx] if df.index.nlevels == 1 else idx -%} {%- set row_loop = loop -%} {% for value in idx -%} {%- set index_width = loop.index0 if is_multi_index else none -%} {%- set is_last_group_index = is_last_group_row(row_loop.index0, df.index, level=index_width) -%} {%- set span = get_span(index_tuples, loc=row_loop.index0, width=index_width) -%} {%- if span > 0 %} {%- endif -%} {% endfor %} {%- for value in row -%} {%- set is_last_group_index = is_last_group_row(row_loop.index0, df.index) -%} {%- set is_last_group_column = is_last_group_row(loop.index0, df.columns) -%} {% endfor %} {% endfor %}
{% if level.name is not none %}{{ level.name }}{% endif %}{{ header }}
{% if index_header is not none %}{{ index_header }}{% endif %}
{{ value }}{{ value }}