今天我們來介紹如何在表格中:
GT.fmt_number()
)。GT.fmt_integer()
)。GT.fmt_scientific()
)。GT.fmt_percent()
)。GT.fmt_currency()
)。這幾個函數有許多共通的參數,相信在經過下面幾個例子的說明之後,大家一定很快就能掌握到如何使用。
以下將繼續使用df_demo
為範例說明:
GT.fmt_number()
GT.fmt_number(self, columns=None, rows=None, decimals=2, n_sigfig=None, drop_trailing_zeros=False, drop_trailing_dec_mark=True, use_seps=True, scale_by=1, compact=False, pattern='{x}', sep_mark=',', dec_mark='.', force_sign=False, locale=None)
GT.fmt_number()可以將欄位值格式化為數字形式。例如:
(GT(df_demo).fmt_number(cs.numeric()))
這裡我們可以使用Polars的cs.numeric()
快速選出所有欄位格式為數字型別的欄位。
GT.fmt_number()
有一個好用compact
參數,可以將數值格式換成使用像是K
或M
的數字寫法:
(GT(df_demo).fmt_number(cs.numeric(), compact=True))
大部份的GT_fmt_*()
都接受一個pattern
參數。使用方法是先將欄位值想作是一個字串"{x}"
,接下來可以於該字串中添加其它變化,有點像是f-string一樣。舉例來說,如果我們想在欄位值前後都加上兩條底線的話,可以這麼寫:
(GT(df_demo).fmt_number(cs.numeric(), pattern="__{x}__"))
GT.fmt_integer()
GT.fmt_integer(self, columns=None, rows=None, use_seps=True, scale_by=1, compact=False, pattern='{x}', sep_mark=',', force_sign=False, locale=None)
GT.fmt_integer()可以將欄位值格式化為整數形式。例如:
(GT(df_demo).fmt_integer("sci"))
假如我們想將「"sci"」欄位顯示為乘上100之後的值,可以使用scale_by
參數來調整:
(GT(df_demo).fmt_integer("sci", scale_by=100))
此外,假如我們不喜歡每三個位數就會出現一個,
的話,可以使用use_seps
參數來控制:
(GT(df_demo).fmt_integer("sci", scale_by=100, use_seps=False))
GT.fmt_scientific()
GT.fmt_scientific(self, columns=None, rows=None, decimals=2, n_sigfig=None, drop_trailing_zeros=False, drop_trailing_dec_mark=True, scale_by=1, exp_style='x10n', pattern='{x}', sep_mark=',', dec_mark='.', force_sign_m=False, force_sign_n=False, locale=None)
GT.fmt_scientific()可以將欄位值格式化為科學符號形式。例如:
(GT(df_demo).fmt_scientific("sci"))
我們可以使用n_sigfig
參數來指定科學符號前想顯示的位數:
(GT(df_demo).fmt_scientific("sci", n_sigfig=10))
另外,可以使用force_sign_m
來控制是否要強制添加正負符號:
(GT(df_demo).fmt_scientific("sci", force_sign_m=True))
GT.fmt_percent()
GT.fmt_percent(self, columns=None, rows=None, decimals=2, drop_trailing_zeros=False, drop_trailing_dec_mark=True, scale_values=True, use_seps=True, pattern='{x}', sep_mark=',', dec_mark='.', force_sign=False, placement='right', incl_space=False, locale=None)
GT.fmt_percent()可以將欄位值格式化為百分比形式。例如:
(GT(df_demo).fmt_percent("perc"))
此外,可以使用decimals
參數調整顯示的小數位數:
(GT(df_demo).fmt_percent("perc", decimals=1))
也可以使用incl_space
參數在數字與百分比符號之間增加空格:
(GT(df_demo).fmt_percent("perc", decimals=1, incl_space=True))
GT.fmt_currency()
GT.fmt_currency(self, columns=None, rows=None, currency=None, use_subunits=True, decimals=None, drop_trailing_dec_mark=True, use_seps=True, scale_by=1, pattern='{x}', sep_mark=',', dec_mark='.', force_sign=False, placement='left', incl_space=False, locale=None)
GT.fmt_currency()可以將欄位值格式化為貨幣形式。例如:
(GT(df_demo).fmt_currency("sci"))
此外可以藉由搭配scale_by
及currency
參數,來轉換顯示倍數及貨幣幣種。例如進行台幣與日幣的轉換:
(GT(df_demo).fmt_currency("sci", decimals=0, currency="JPY", scale_by=4.4))
最後,也可以試著使用locale
參數,讓gt
自己決定適合的貨幣顯示方式。例如將locale
設定為ja
(日本):
(GT(df_demo).fmt_currency("sci", locale="ja"))
locale功能目前並沒有很明確的文件說明,其內部是依靠x_locales.csv這個資料集來訂立locale
參數及取得各地區或國家所相對應的設定。