MCPcopy
hub / github.com/pandas-dev/pandas / _get_level_lengths

Function _get_level_lengths

pandas/io/formats/style_render.py:1783–1861  ·  view source on GitHub ↗

Given an index, find the level length for each element. Parameters ---------- index : Index Index or columns to determine lengths of each element sparsify : bool Whether to hide or show each distinct element in a MultiIndex max_index : int The maximu

(
    index: Index,
    sparsify: bool,
    max_index: int,
    hidden_elements: Sequence[int] | None = None,
)

Source from the content-addressed store, hash-verified

1781
1782
1783def _get_level_lengths(
1784 index: Index,
1785 sparsify: bool,
1786 max_index: int,
1787 hidden_elements: Sequence[int] | None = None,
1788):
1789 """
1790 Given an index, find the level length for each element.
1791
1792 Parameters
1793 ----------
1794 index : Index
1795 Index or columns to determine lengths of each element
1796 sparsify : bool
1797 Whether to hide or show each distinct element in a MultiIndex
1798 max_index : int
1799 The maximum number of elements to analyse along the index due to trimming
1800 hidden_elements : sequence of int
1801 Index positions of elements hidden from display in the index affecting
1802 length
1803
1804 Returns
1805 -------
1806 Dict :
1807 Result is a dictionary of (level, initial_position): span
1808 """
1809 if isinstance(index, MultiIndex):
1810 levels = index._format_multi(sparsify=lib.no_default, include_names=False)
1811 else:
1812 levels = index._format_flat(include_name=False)
1813
1814 if hidden_elements is None:
1815 hidden_elements = []
1816
1817 lengths = {}
1818 if not isinstance(index, MultiIndex):
1819 for i, value in enumerate(levels):
1820 if i not in hidden_elements:
1821 lengths[(0, i)] = 1
1822 return lengths
1823
1824 for i, lvl in enumerate(levels):
1825 visible_row_count = 0 # used to break loop due to display trimming
1826 for j, row in enumerate(lvl):
1827 if visible_row_count > max_index:
1828 break
1829 if not sparsify:
1830 # then lengths will always equal 1 since no aggregation.
1831 if j not in hidden_elements:
1832 lengths[(i, j)] = 1
1833 visible_row_count += 1
1834 elif (row is not lib.no_default) and (j not in hidden_elements):
1835 # this element has not been sparsified so must be the start of section
1836 last_label = j
1837 lengths[(i, last_label)] = 1
1838 visible_row_count += 1
1839 elif row is not lib.no_default:
1840 # even if the above is hidden, keep track of it in case length > 1 and

Callers 5

_translateMethod · 0.85
_translate_headerMethod · 0.85

Calls 3

_format_multiMethod · 0.80
_format_flatMethod · 0.80
itemsMethod · 0.45