pandas.io.formats.style.Styler.format
- Styler.format(formatter=None, subset=None, na_rep=None, precision=None, decimal='.', thousands=None, escape=None, hyperlinks=None)[source]
-
Форматирование текстового значения ячеек.
- Параметры
-
- formatter:str, callable, dict или None
-
Объект для определения способа отображения значений. См. примечания.
- subset:метка, массив-подобный объект, IndexSlice, необязательно
-
Допустимый двумерный ввод для DataFrame.loc[<subset>], или, в случае одномерного ввода или единственного ключа, для DataFrame.loc[:, <subset>], где колонки имеют приоритет, для ограничения
dataдо применения функции. - na_rep:str, необязательно
-
Представление пропущенных значений. Если
na_repравно None, специальное форматирование не применяется.В версии 1.0.0.
- precision:int, необязательно
-
Точность чисел с плавающей запятой для отображения, если она не определена указанным
formatter.В версии 1.3.0.
- decimal:str, по умолчанию “.”
-
Символ, используемый в качестве разделителя десятичных знаков для чисел с плавающей запятой, комплексных и целых чисел.
В версии 1.3.0.
- thousands:str, необязательно, по умолчанию None
-
Символ, используемый в качестве разделителя тысяч для чисел с плавающей запятой, комплексных и целых чисел.
В версии 1.3.0.
- escape:str, необязательно
-
Используйте ‘html’, чтобы заменить символы
&,<,>,', и"в строке отображения ячейки на безопасные для HTML последовательности. Используйте ‘latex’, чтобы заменить символы&,%,$,#,_,{,},~,^, и\в строке отображения ячейки на безопасные для LaTeX последовательности. Экранирование выполняется доformatter.В версии 1.3.0.
- hyperlinks:{“html”, “latex”}, необязательно
-
Преобразуйте строковые шаблоны, содержащие https://, http://, ftp:// или www. в теги HTML <a> в качестве настраиваемых гиперссылок, если “html”, или команды LaTeX href, если “latex”.
В версии 1.4.0.
- Возвращает
-
- self:Styler
См. также
Styler.format_index-
Форматирование текстового значения меток индекса.
Примечания
Этот метод назначает функцию форматирования,
formatter, каждой ячейке в DataFrame. ЕслиformatterравноNone, то используется стандартный форматтер. Если это вызываемый объект, то эта функция должна принимать значение данных в качестве входных данных и возвращать отображаемое представление, например, строку. Еслиformatterзадано как строка, это предполагается как допустимый спецификатор формата Python и оборачивается в вызываемый объект какstring.format(x). Если заданdict, ключи должны соответствовать именам столбцов, а значения должны быть строками или вызываемыми объектами, как описано выше.Стандартный форматтер в настоящее время отображает числа с плавающей запятой и комплексные числа с точностью отображения pandas, за исключением использования аргумента
precisionздесь. Стандартный форматтер не изменяет представление пропущенных значений, если не используется аргументna_rep.Аргумент
subsetопределяет область применения функции форматирования. Если аргументformatterзадан в виде словаря, но не включает все столбцы в подмножестве, эти столбцы будут иметь стандартный форматтер. Любые столбцы в словаре форматирования, исключенные из подмножества, будут проигнорированы.При использовании строки
formatterтипы данных должны быть совместимы, в противном случае будет поднято исключение ValueError.При создании Styler, можно применить стандартное форматирование, установив
pandas.options.styler.format.formatter: по умолчанию None.styler.format.na_rep: по умолчанию None.styler.format.precision: по умолчанию 6.styler.format.decimal: по умолчанию “.”.styler.format.thousands: по умолчанию None.styler.format.escape: по умолчанию None.
Предупреждение
Styler.format игнорируется при использовании формата вывода Styler.to_excel, так как Excel и Python имеют по своей природе разные структуры форматирования. Однако возможно использовать псевдо атрибут CSS number-format для принудительного применения допустимого для Excel форматирования. Смотрите примеры.
Примеры
Использование
na_repиprecisionсо стандартнымformatter>>> df = pd.DataFrame([[np.nan, 1.0, 'A'], [2.0, np.nan, 3.0]]) >>> df.style.format(na_rep='MISS', precision=3) 0 1 2 0 MISS 1.000 A 1 2.000 MISS 3.000Использование спецификации
formatterдля совместимых типов столбцов>>> df.style.format('{:.2f}', na_rep='MISS', subset=[0,1]) 0 1 2 0 MISS 1.00 A 1 2.00 MISS 3.000000Использование стандартного
formatterдля неопределенных столбцов>>> df.style.format({0: '{:.2f}', 1: '£ {:.1f}'}, na_rep='MISS', precision=1) ... 0 1 2 0 MISS £ 1.0 A 1 2.00 MISS 3.0Несколько
na_repилиprecisionспецификаций в рамках стандартногоformatter.>>> df.style.format(na_rep='MISS', precision=1, subset=[0]) ... .format(na_rep='PASS', precision=2, subset=[1, 2]) 0 1 2 0 MISS 1.00 A 1 2.0 PASS 3.00Использование вызываемой
formatterфункции.>>> func = lambda s: 'STRING' if isinstance(s, str) else 'FLOAT' >>> df.style.format({0: '{:.1f}', 2: func}, precision=4, na_rep='MISS') ... 0 1 2 0 MISS 1.0000 STRING 1 2.0 MISS FLOATИспользование
formatterс HTMLescapeиna_rep.>>> df = pd.DataFrame([['<div></div>', '"A&B"', None]]) >>> s = df.style.format( ... '<a href="a.com/{0}">{0}</a>', escape="html", na_rep="NA" ... ) >>> s.to_html() ... <td .. ><a href="a.com/<div></div>"><div></div></a></td> <td .. ><a href="a.com/"A&B"">"A&B"</a></td> <td .. >NA</td> ...Использование
formatterс LaTeXescape.>>> df = pd.DataFrame([["123"], ["~ ^"], ["$%#"]]) >>> df.style.format("\\textbf{{{}}}", escape="latex").to_latex() ... \begin{tabular}{ll} {} & {0} \\ 0 & \textbf{123} \\ 1 & \textbf{\textasciitilde \space \textasciicircum } \\ 2 & \textbf{\$\%\#} \\ \end{tabular}Pandas определяет псевдо атрибут CSS number-format вместо метода .format для создания форматирования, допустимого для to_excel. Обратите внимание, что точки с запятой — это защищенные символы CSS, но используются в качестве разделителей в строке форматирования Excel. Замените точки с запятой разделителем секций (ASCII-245) при определении форматирования здесь.
>>> df = pd.DataFrame({"A": [1, 0, -1]}) >>> pseudo_css = "number-format: 0§[Red](0)§-§@;" >>> df.style.applymap(lambda v: css).to_excel("formatted_file.xlsx") ...
© 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/1.5.0/reference/api/pandas.io.formats.style.Styler.format.html