pandas.io.formats.style.Styler.format_index
- Styler.format_index(formatter=None, axis=0, level=None, na_rep=None, precision=None, decimal='.', thousands=None, escape=None, hyperlinks=None)[source]
-
Форматирование текстового значения меток индекса или заголовков столбцов.
Новое в версии 1.4.0.
- Параметры:
-
- formatter:str, callable, dict или None
-
Объект, определяющий способ отображения значений. См. примечания.
- axis:{0, “index”, 1, “columns”}
-
Определяет, к индексу или заголовкам столбцов применять форматирование.
- level:int, str, список
-
Уровень(и), на котором применяется общее форматирование.
- na_rep:str, необязательно
-
Представление для пропущенных значений. Если
na_repравно None, специальное форматирование не применяется. - precision:int, необязательно
-
Точность чисел с плавающей запятой для отображения, если она не определена указанным
formatter. - decimal:str, по умолчанию “.”
-
Символ, используемый в качестве десятичного разделителя для чисел с плавающей запятой, комплексных и целых чисел.
- thousands:str, необязательно, по умолчанию None
-
Символ, используемый в качестве разделителя тысяч для чисел с плавающей запятой, комплексных и целых чисел.
- escape:str, необязательно
-
Использование ‘html’ для замены символов
&,<,>,', и"в строке отображения ячейки на безопасные для HTML последовательности. Использование ‘latex’ для замены символов&,%,$,#,_,{,},~,^, и\в строке отображения ячейки на безопасные для LaTeX последовательности. Экранирование выполняется доformatter. - hyperlinks:{“html”, “latex”}, необязательно
-
Преобразовать строковые шаблоны, содержащие https://, http://, ftp:// или www. в теги HTML <a> как нажатия по ссылке URL, если “html”, или команды LaTeX href, если “latex”.
- Возвращаемое значение:
-
- Styler
См. также
Styler.format-
Форматирование текстового значения данных ячеек.
Примечания
Этот метод присваивает функцию форматирования,
formatter, каждой метке уровня в индексе или заголовках столбцов DataFrame. ЕслиformatterравноNone, используется стандартное форматирование. Если это вызываемая функция, то эта функция должна принимать в качестве входного значения значение метки и возвращать строку отображения, например строку. Еслиformatterзадано строкой, это предполагается как допустимое Python спецификацией форматирования и обёрнуто как вызываемая функцияstring.format(x). Если указанdict, ключи должны соответствовать номерам или именам уровней MultiIndex, а значения должны быть строкой или вызываемой функцией, как указано выше.В настоящее время стандартное форматирование выражает числа с плавающей точкой и комплексные числа с точностью отображения pandas, если не используется аргумент
precision. Стандартное форматирование не корректирует представление пропущенных значений, если не используется аргументna_rep.Аргумент
levelопределяет, к каким уровням MultiIndex применяется метод. Если аргументformatterзадан в виде словаря, но не включает все уровни в аргументе level, то для этих неопределённых уровней будет применено стандартное форматирование. Любые уровни в словаре formatter, явно исключённые из аргумента level, будут проигнорированы.При использовании строки
formatterтипы данных должны быть совместимы, в противном случае будет поднято исключение ValueError.Предупреждение
Styler.format_index игнорируется при использовании формата вывода Styler.to_excel, так как Excel и Python имеют внутренне разные структуры форматирования. Тем не менее, возможно использование псевдо атрибута CSS number-format для принудительного форматирования, допустимого в 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с HTMLescapeи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") ... <th .. >$ "A"</th> <th .. >$ A&B</th> <th .. >NA</td> ...Использование
formatterс LaTeXescape.>>> 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}
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.io.formats.style.Styler.format_index.html