工作中需要利用郵件每天向領導發送報表和一些統計數據,利用python可以實現每天定時發送非常方便,而且可以在正文中附上pandas dataframe表格,df.to_html就可以實現
-
首先我們先看下官方文檔的解釋:
pandas.DataFrame.to_html
用法非常簡單,但是如果我們想把表格制作得更友好一些呢? 畢竟領導的時間很寶貴。
比如我們想讓表格里的數字顯示千分位分隔符,同時保留兩位小數
那就可以通過float_format 或者 formatters來指定顯示規則,一開始對于官方文檔的解釋不是很懂
-
formatters : list or dict of one-parameter functions, optional
formatter functions to apply to columns’ elements by position or name, default None. The result of each function must be a unicode string. List must be of length equal to the number of columns. -
float_format : one-parameter function, optional
formatter function to apply to columns’ elements if they are floats, default None. The result of this function must be a unicode string.
這里的 on-parameter function 長什么樣呢?
摸索了一下,這里的format函數可以通過以下兩種方式定義:
- 常規定義法 def
def
myFormat
(
x
)
:
# 保留兩位小數,顯示千分位分隔符
return
format
(
x
,
',.2f'
)
- lambda 定義法
lambda
x
:
format
(
x
,
',.2f'
)
這里的formatters可以指定某些列的格式(包括但不限于數字的格式),float_format則是應用于表格中所有的數字(float)
- 更復雜的formatt可參考 Style
用法如下
df
.
to_html
(
index
=
False
,
formaters
=
{
'A'
:
myFormat
}
)
# 其中A列為數字
# 或者
df
.
to_html
(
index
=
False
,
float_format
=
lambda
x
:
format
(
x
,
',.2f'
)
)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
