pandas.io.formats.style.Styler.format#

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

Форматирование текстового отображаемого значения ячеек.

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

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

subsetметка, массивоподобный, IndexSlice, необязательный

Допустимый 2D-ввод для DataFrame.loc[], или, в случае одномерного ввода или одиночного ключа, к DataFrame.loc[:, ] где столбцы имеют приоритет, чтобы ограничить data to до применение функции.

na_repstr, optional

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

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

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

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

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

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

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

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

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

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

escapestr, optional

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

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

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

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

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

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

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

Styler.format_index

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

Примечания

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

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

The 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 имеют принципиально разные структуры форматирования. Однако возможно использовать number-format псевдо CSS атрибут для принудительного форматирования, допустимого в 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 с HTML escape и na_rep.

>>> df = pd.DataFrame([['
'
, '"A&B"', None]]) >>> s = df.style.format( ... '{0}">{0}', escape="html", na_rep="NA" ... ) >>> s.to_html() ... <div></div> "A&B" NA ...

Использование formatter с escape в режиме 'latex'.

>>> 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}

Применение escape в режиме 'latex-math'. В примере ниже мы входим в режим математики с помощью символа $.

>>> df = pd.DataFrame([[r"$\sum_{i=1}^{10} a_i$ a~b $\alpha \
...     = \frac{\beta}{\zeta^2}$"], ["%#^ $ \$x^2 $"]])
>>> df.style.format(escape="latex-math").to_latex()
...  
\begin{tabular}{ll}
 & 0 \\
0 & $\sum_{i=1}^{10} a_i$ a\textasciitilde b $\alpha = \frac{\beta}{\zeta^2}$ \\
1 & \%\#\textasciicircum \space $ \$x^2 $ \\
\end{tabular}

Мы можем использовать символ \( для входа в математический режим и символ \) для закрытия математического режима.

>>> df = pd.DataFrame([[r"\(\sum_{i=1}^{10} a_i\) a~b \(\alpha \
...     = \frac{\beta}{\zeta^2}\)"], ["%#^ \( \$x^2 \)"]])
>>> df.style.format(escape="latex-math").to_latex()
...  
\begin{tabular}{ll}
 & 0 \\
0 & \(\sum_{i=1}^{10} a_i\) a\textasciitilde b \(\alpha
= \frac{\beta}{\zeta^2}\) \\
1 & \%\#\textasciicircum \space \( \$x^2 \) \\
\end{tabular}

Если в одной ячейке DataFrame имеется комбинация сокращений для математических формул, используется сокращение со знаком $ будет применено.

>>> df = pd.DataFrame([[r"\( x^2 \)  $x^2$"], \
...     [r"$\frac{\beta}{\zeta}$ \(\frac{\beta}{\zeta}\)"]])
>>> df.style.format(escape="latex-math").to_latex()
...  
\begin{tabular}{ll}
 & 0 \\
0 & \textbackslash ( x\textasciicircum 2 \textbackslash )  $x^2$ \\
1 & $\frac{\beta}{\zeta}$ \textbackslash (\textbackslash
frac\{\textbackslash beta\}\{\textbackslash zeta\}\textbackslash ) \\
\end{tabular}

Pandas определяет number-format псевдо CSS атрибут вместо .format метод для создания to_excel допустимое форматирование. Обратите внимание, что точки с запятой являются защищенными символами CSS, но используются как разделители в строке формата Excel. Замените точки с запятой на символ разделителя секций (ASCII-245) при определении форматирования здесь.

>>> df = pd.DataFrame({"A": [1, 0, -1]})
>>> pseudo_css = "number-format: 0§[Red](0)§-§@;"
>>> filename = "formatted_file.xlsx"
>>> df.style.map(lambda v: pseudo_css).to_excel(filename) 
../../_images/format_excel_css.png