當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.io.formats.style.Styler.format用法及代碼示例


用法:

Styler.format(formatter=None, subset=None, na_rep=None, precision=None, decimal='.', thousands=None, escape=None, hyperlinks=None)

格式化單元格的文本顯示值。

參數

formatterstr,可調用,字典或無

定義值如何顯示的對象。見注釋。

subset標簽,array-like,IndexSlice,可選

DataFrame.loc[<subset>] 的有效 2d 輸入,或者在 1d 輸入或單鍵的情況下,到列優先的 DataFrame.loc[:, <subset>],在應用函數之前將 data 限製為。

na_repstr,可選

缺失值的表示。如果na_rep 為無,則不應用特殊格式。

precision整數,可選

如果不是由指定的 formatter 確定,則用於顯示目的的浮點精度。

decimalstr,默認 “.”

用作浮點數、複數和整數的小數分隔符的字符。

thousandsstr,可選,默認無

用作浮點數、複數和整數的千位分隔符的字符。

escapestr,可選

使用‘html’ 替換字符&,<,>,', 和"在帶有HTML-safe 序列的單元格顯示字符串中。使用‘latex’ 替換字符&,%,$,#,_,{,},~,^, 和\在帶有LaTeX-safe 序列的單元格顯示字符串中。轉義是在之前完成的formatter.

hyperlinks{“html”, “latex”},可選

轉換包含 https://、http://、ftp://或 www 的字符串模式。如果 “html” 將 HTML <a> 標簽作為可點擊的 URL 超鏈接,如果 “latex” 則將 LaTeX href 命令轉換為可點擊的 URL 超鏈接。

返回

self造型器

注意

此方法為 DataFrame 中的每個單元格分配一個格式化函數 formatter 。如果 formatterNone ,則使用默認格式化程序。如果是可調用的,則該函數應將數據值作為輸入並返回可顯示的表示形式,例如字符串。如果 formatter 作為字符串給出,則假定這是一個有效的 Python 格式規範,並被包裝到一個可調用的 string.format(x) 中。如果給出dict,鍵應該對應於列名,值應該是字符串或可調用的,如上所述。

除非在此處使用 precision 參數,否則默認格式化程序當前使用 pandas 顯示精度表示浮點數和複數。除非使用 na_rep 參數,否則默認格式化程序不會調整缺失值的表示。

subset 參數定義將格式化函數應用於哪個區域。如果 formatter 參數以 dict 形式給出但不包括子集中的所有列,則這些列將應用默認格式化程序。從子集中排除的格式化程序字典中的任何列都將被忽略。

使用 formatter 字符串時,dtypes 必須兼容,否則將引發 ValueError

實例化 Styler 時,可以通過設置 pandas.options 應用默認格式:

  • styler.format.formatter:default None.

  • styler.format.na_rep:default None.

  • styler.format.precision:default 6.

  • styler.format.decimal:default “.”.

  • styler.format.thousands:default None.

  • styler.format.escape:default None.

例子

na_repprecision 與默認 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

在一致的列 dtypes 上使用 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

默認 formatter 下的多個 na_repprecision 規範。

>>> 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 escapena_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/&lt;div&gt;&lt;/div&gt;">&lt;div&gt;&lt;/div&gt;</a></td>
<td .. ><a href="a.com/&#34;A&amp;B&#34;">&#34;A&amp;B&#34;</a></td>
<td .. >NA</td>
...

formatter 與 LaTeX escape 一起使用。

>>> 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.pydata.org大神的英文原創作品 pandas.io.formats.style.Styler.format。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。