pandas.io.formats.style.Styler.format_index#

Styler.format_index(форматер=None, ось=0, уровень=None, na_rep=None, точность=None, десятичный='.', тысячи=None, escape=None, гиперссылки=None)[источник]#

Форматирует текстовое отображаемое значение меток индекса или заголовков столбцов.

Добавлено в версии 1.4.0.

Параметры:
форматерstr, callable, dict или None

Объект для определения способа отображения значений. См. примечания.

ось{0, “index”, 1, “columns”}

Применять ли форматирование к индексу или заголовкам столбцов.

уровеньint, str, list

Уровень(и), по которым применяется общий форматтер.

na_repstr, optional

Представление для пропущенных значений. Если na_rep равно None, специальное форматирование не применяется.

точностьint, необязательный

Точность отображения чисел с плавающей точкой, если не определена указанным formatter.

десятичныйstr, по умолчанию "."

Символ, используемый в качестве десятичного разделителя для чисел с плавающей точкой, комплексных и целых чисел.

тысячиstr, опционально, по умолчанию None

Символ, используемый в качестве разделителя тысяч для чисел с плавающей запятой, комплексных и целых чисел.

escapestr, optional

Используйте 'html' для замены символов &, <, >, ', и " в строке отображения ячейки с HTML-безопасными последовательностями. Используйте 'latex' для замены символов &, %, $, #, _, {, }, ~, ^, и \ в строке отображения ячейки с безопасными для LaTeX последовательностями. Экранирование выполняется перед formatter.

гиперссылки{“html”, “latex”}, опционально

Преобразование строковых шаблонов, содержащих https://, http://, ftp:// или www. в HTML-теги как кликабельные URL-гиперссылки, если "html", или команды href LaTeX, если "latex".

Возвращает:
Styler

Смотрите также

Styler.format

Форматировать текстовое отображаемое значение ячеек данных.

Примечания

Этот метод назначает функцию форматирования, formatter, для каждой метки уровня в индексе DataFrame или заголовках столбцов. Если formatter является None, то используется форматтер по умолчанию. Если вызываемый объект, то эта функция должна принимать значение метки в качестве входных данных и возвращать отображаемое представление, такое как строка. Если formatter если указана как строка, предполагается, что это допустимая спецификация формата Python и оборачивается в вызываемый объект как string.format(x). Если dict если задано, ключи должны соответствовать номерам или именам уровней MultiIndex, а значения должны быть строками или вызываемыми объектами, как указано выше.

Форматтер по умолчанию в настоящее время выражает числа с плавающей точкой и комплексные числа с точностью отображения pandas, если не используется precision аргумент здесь. Форматер по умолчанию не корректирует представление пропущенных значений, если только na_rep аргумент используется.

The level аргумент определяет, к каким уровням MultiIndex применить метод. Если formatter если аргумент задан в виде словаря, но не включает все уровни в аргументе level, то к этим неуказанным уровням будет применён форматтер по умолчанию. Любые уровни в словаре форматтера, явно исключённые из аргумента level, будут проигнорированы.

При использовании formatter строковые типы данных должны быть совместимы, иначе ValueError будет вызвано исключение.

Предупреждение

Styler.format_index игнорируется при использовании выходного формата Styler.to_excel, поскольку Excel и Python имеют принципиально разные структуры форматирования. Однако возможно использовать number-format псевдо CSS атрибут для принудительного форматирования, допустимого в Excel. См. документацию для Styler.format.

Примеры

Используя na_rep и precision с значением по умолчанию formatter

>>> df = pd.DataFrame([[1, 2, 3]], columns=[2.0, np.nan, 4.0])
>>> df.style.format_index(axis=1, na_rep='MISS', precision=3)  
    2.000    MISS   4.000
0       1       2       3

Использование formatter спецификация на согласованные типы данных на уровне

>>> df.style.format_index('{:.2f}', axis=1, na_rep='MISS')  
     2.00   MISS    4.00
0       1      2       3

Использование значения по умолчанию formatter для неуказанных уровней

>>> df = pd.DataFrame([[1, 2, 3]],
...     columns=pd.MultiIndex.from_arrays([["a", "a", "b"],[2, np.nan, 4]]))
>>> df.style.format_index({0: lambda v: v.upper()}, axis=1, precision=1)
...  
               A       B
      2.0    nan     4.0
0       1      2       3

Использование вызываемой функции formatter функция.

>>> func = lambda s: 'STRING' if isinstance(s, str) else 'FLOAT'
>>> df.style.format_index(func, axis=1, na_rep='MISS')
...  
          STRING  STRING
    FLOAT   MISS   FLOAT
0       1      2       3

Использование formatter с HTML escape и na_rep.

>>> df = pd.DataFrame([[1, 2, 3]], columns=['"A"', 'A&B', None])
>>> s = df.style.format_index('$ {0}', axis=1, escape="html", na_rep="NA")
...  
$ "A"
$ A&B
NA
...

Использование formatter с LaTeX escape.

>>> df = pd.DataFrame([[1, 2, 3]], columns=["123", "~", "$%#"])
>>> df.style.format_index("\\textbf{{{}}}", escape="latex", axis=1).to_latex()
...  
\begin{tabular}{lrrr}
{} & {\textbf{123}} & {\textbf{\textasciitilde }} & {\textbf{\$\%\#}} \\
0 & 1 & 2 & 3 \\
\end{tabular}