pandas.io.formats.style.Styler.relabel_index#
- Styler.relabel_index(метки, ось=0, уровень=None)[источник]#
Переименовать ключи индекса или заголовков столбцов для отображения заданного набора значений.
Добавлено в версии 1.5.0.
- Параметры:
- меткиlist-like или Index
Новые метки для отображения. Должны иметь ту же длину, что и базовые значения, не скрытые.
- ось{“index”, 0, “columns”, 1}
Применить к индексу или столбцам.
- уровеньint, str, list, необязательный
Уровень(и), на которые применяются новые метки. Если None будет применяться ко всем уровням Index или MultiIndex, которые не скрыты.
- Возвращает:
- Styler
Смотрите также
Styler.format_indexФорматирование текстового отображаемого значения индекса или заголовков столбцов.
Styler.hideСкрыть индекс, заголовки столбцов или указанные данные от отображения.
Примечания
Как часть Styler, этот метод позволяет полностью задавать пользователем отображение индекса, не затрагивая базовые данные DataFrame, индекс или заголовки столбцов. Это означает, что гибкость индексирования сохраняется, а конечное отображение настраивается.
Поскольку Styler предназначен для постепенного построения с цепочкой методов, этот метод адаптирован для реакции на в настоящее время указанные скрытые элементы. Это полезно, так как не нужно указывать все новые метки, если большинство индекса или заголовков столбцов уже скрыто. Следующие варианты дают эквивалентное отображение (обратите внимание на длину
labelsв каждом случае).# relabel first, then hide df = pd.DataFrame({"col": ["a", "b", "c"]}) df.style.relabel_index(["A", "B", "C"]).hide([0,1]) # hide first, then relabel df = pd.DataFrame({"col": ["a", "b", "c"]}) df.style.hide([0,1]).relabel_index(["C"])
Этот метод следует использовать вместо
Styler.format_index(), в одном из следующих случаев (см. примеры):Требуется указанный набор меток, которые не являются функцией от базовых ключей индекса.
Функция ключей базового индекса требует переменной-счётчика, такой как доступная при перечислении.
Примеры
Базовое использование
>>> df = pd.DataFrame({"col": ["a", "b", "c"]}) >>> df.style.relabel_index(["A", "B", "C"]) col A a B b C c
Цепочка с предварительно скрытыми элементами
>>> df.style.hide([0,1]).relabel_index(["C"]) col C c
Использование MultiIndex
>>> midx = pd.MultiIndex.from_product([[0, 1], [0, 1], [0, 1]]) >>> df = pd.DataFrame({"col": list(range(8))}, index=midx) >>> styler = df.style col 0 0 0 0 1 1 1 0 2 1 3 1 0 0 4 1 5 1 0 6 1 7 >>> styler.hide((midx.get_level_values(0)==0)|(midx.get_level_values(1)==0)) ... >>> styler.hide(level=[0,1]) >>> styler.relabel_index(["binary6", "binary7"]) col binary6 6 binary7 7
Мы также можем достичь вышеуказанного, сначала проиндексировав, а затем перемаркировав
>>> styler = df.loc[[(1,1,0), (1,1,1)]].style >>> styler.hide(level=[0,1]).relabel_index(["binary6", "binary7"]) ... col binary6 6 binary7 7
Определение функции форматирования, которая использует счётчик перечисления. Также обратите внимание, что значение ключа индекса передаётся в случае строковых меток, поэтому его также можно вставить в метку, используя фигурные скобки (или двойные фигурные скобки, если строка предварительно отформатирована),
>>> df = pd.DataFrame({"samples": np.random.rand(10)}) >>> styler = df.loc[np.random.randint(0,10,3)].style >>> styler.relabel_index([f"sample{i+1} ({{}})" for i in range(3)]) ... samples sample1 (5) 0.315811 sample2 (0) 0.495941 sample3 (2) 0.067946