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

造型器。format_index ( formatter = None , axis = 0 , level = None , na_rep = None , precision = None , decimal = '.' ,数千= None , escape = None , hyperlinks = None ) [来源] #

设置索引标签或列标题的文本显示值的格式。

1.4.0 版本中的新增功能。

参数
格式化程序str、可调用、dict 或 None

定义值如何显示的对象。参见注释。

{0, “索引”, 1, “列”}

是否将格式化程序应用于索引或列标题。

级别int、str、列表

应用通用格式化程序的级别。

na_rep str,可选

缺失值的表示。如果na_rep为 None,则不应用特殊格式。

精度int,可选

用于显示目的的浮点精度(如果未由指定的 确定)formatter

十进制str,默认“.”

用作浮点数、复数和整数的小数点分隔符的字符。

str,可选,默认无

用作浮点数、复数和整数的千位分隔符的字符。

转义str,可选

使用 'html' 将单元格显示字符串中的字符&<>'和替换" 为 HTML 安全序列。使用 'latex' 将单元格显示字符串中的字符&, %, $, #, _, {, }, , ~,^和替换\为 LaTeX 安全序列。逃跑之前就已经完成了formatter

超链接{“html”, “latex”},可选

转换包含https://http://ftp://或 www 的字符串模式。如果是“html”,则将 HTML <a> 标记作为可点击的 URL 超链接;如果是“latex”,则将 LaTeX href 命令作为可点击的 URL 超链接。

返回
造型器

也可以看看

Styler.format

设置数据单元格文本显示值的格式。

笔记

此方法将格式化函数 分配formatter给 DataFrame 索引或列标题中的每个级别标签。如果formatterNone,则使用默认格式化程序。如果是可调用的,则该函数应将标签值作为输入并返回可显示的表示形式,例如字符串。如果formatter作为字符串给出,则假定它是有效的 Python 格式规范,并包装为可调用的string.format(x).如果dict给出 a,则键应对应于 MultiIndex 级别数字或名称,值应为字符串或可调用,如上所述。

默认格式化程序当前以 pandas 显示精度表示浮点数和复数,除非precision在此处使用参数。除非na_rep使用参数,否则默认格式化程序不会调整缺失值的表示。

level参数定义了将该方法应用到 MultiIndex 的哪些级别。如果formatter参数以 dict 形式给出,但不包括级别参数中的所有级别,则这些未指定的级别将应用默认格式化程序。格式化程序字典中从 level 参数中明确排除的任何级别都将被忽略。

使用formatter字符串时,数据类型必须兼容,否则 将引发ValueError 。

警告

使用输出格式 Styler.to_excel时, Styler.format_index会被忽略,因为 Excel 和 Python 具有本质上不同的格式结构。但是,可以使用数字格式伪 CSS 属性来强制使用 Excel 允许的格式。请参阅Styler.format的文档。

例子

使用na_repandprecision与默认值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

使用formatterHTMLescapena_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 .. >$ &#34;A&#34;</th>
<th .. >$ A&amp;B</th>
<th .. >NA</td>
...

将 aformatter与 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}