DataFrame.to_html()詳解 將數(shù)據(jù)框 DataFrame 轉(zhuǎn)為 html 表格

參數(shù)

DataFrame.to_html(buf=None, columns=None, col_space=None, header=True, index=True,na_rep='NaN',
    formatters=None, float_format=None, sparsify=None, index_names=True,justify=None,
    bold_rows=True,classes=None, escape=True, max_rows=None, max_cols=None,show_dimensions=False,
    notebook=False, decimal='.', border=None)
buf : StringIO-like, 可選
    寫入緩沖區(qū)浩螺。
columns : sequence拉盾,可選
    要轉(zhuǎn)化的列的列名桨菜;默認(rèn)值 None 為所有列轉(zhuǎn)化。
col_space : int捉偏,可選
    每列的最小寬度倒得。
header : bool,可選
    是否打印列標(biāo)簽夭禽,默認(rèn)為 True霞掺。
index : 布爾值,可選
    是否打印索引(行)標(biāo)簽讹躯,默認(rèn)為 True菩彬。
na_rep : 字符串,可選
    指定 NAN 的字符串表示形式潮梯,默認(rèn)為 'NaN'骗灶。
formatters : 多個(gè)單參數(shù)函數(shù)組成的列表或字典,可選
    格式化程序可按列表的所索引或字典的鍵名稱應(yīng)用于列元素秉馏,默認(rèn)為 None耙旦。
    每個(gè)單參數(shù)函數(shù)的結(jié)果必須是一個(gè) unicode 字符串。列表的長(zhǎng)度必須等于列數(shù)萝究。
float_format: 單參數(shù)函數(shù)免都,可選
    用于將列元素設(shè)置為浮點(diǎn)數(shù)的格式化程序功能,默認(rèn)為無帆竹。
    此單參數(shù)函數(shù)的結(jié)果必須是 unicode 字符串绕娘。
sparsify : bool,可選
    默認(rèn)為 True馆揉。輸入 False 時(shí)业舍,對(duì)于具有層次結(jié)構(gòu)索引的 DataFrame,會(huì)在每一行打印多重索引升酣。
index_names : bool舷暮,可選
    打印索引名稱,默認(rèn)為 True噩茄。
line_width : int下面,可選
    換行符的寬度,默認(rèn)為不換行绩聘。
justify : 列標(biāo)簽對(duì)齊方式, 可選
    左右對(duì)齊列標(biāo)簽沥割。默認(rèn)為 None時(shí)耗啦,使用打印配置中的選項(xiàng)(由 set_option 控制),則右對(duì)齊机杜。
bold_rows : bool, 可選
    對(duì)橫向表格線進(jìn)行加粗帜讲。
classes : CSS類(es)適用于生成的html表, 可選
    默認(rèn) None
escape : bool, 可選
    將 "<", ">", "&" 轉(zhuǎn)化成 html 安全序列(?椒拗?)似将,默認(rèn) True。
max_rows : int, 可選
    顯示最大行數(shù)蚀苛。
max_cols : int, 可選
    顯示最大列數(shù)在验。
decimal : str, 可選
    小數(shù)分隔符, 默認(rèn)為 '.'。
border : int堵未, 可選
    表格外邊框?qū)挾纫干啵J(rèn)為 1,參數(shù)為 0 時(shí)表格無邊框渗蟹。數(shù)值越大外邊框越寬块饺。

示例

默認(rèn)格式

data = [{"col_a":"AAAAAAAAAAAAAAAA", "col_b":"1.22288", "col_c":"1", "col_d":None},
        {"col_a":"HHHH", "col_b":"2.55566", "col_c":np.nan, "col_d":{
            "idx_1":"dark", "idx_2":"light"}
        }]
df_test = pd.DataFrame(data)
html_text = df_test.to_html()
html_text

行索引

html_text2 = df_test.to_html(index=False)  # 無行索引
html_text2

邊框?qū)挾?/p>

html_text3 = df_test.to_html(border=5)  # 邊框?qū)挾仍O(shè)為 2, 設(shè)為 0 則 無邊框
html_text3

對(duì)齊方式

# justify='left' 為左對(duì)齊, justify='right' 為右對(duì)齊
html_text4 = df_test.to_html(index=False, justify='center')  # 列標(biāo)簽內(nèi)容居中對(duì)齊
html_text4

空的顯示

html_text5 = df_test.to_html(index=False, na_rep="空")  # 自定義空字符表現(xiàn)形式
html_text5
  • 測(cè)試可知,na_rep 參數(shù)設(shè)定對(duì) None 不起作用拙徽。

邊框線實(shí)心

html_text6 = df_test.to_html()
print(html_text6)

"""
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      ...
      ...
      ...
    </tr>
  </tbody>
</table>
"""

to_html() 我沒有找到讓邊框線變實(shí)心的功能刨沦。但我們可以用嘗試改造 html 文本。我們看下 html_text6html 文本膘怕,html 表格的屬性存放在 table 標(biāo)簽中,我們可以在 class 前面插入邊框線實(shí)心的參數(shù)召庞。

html_text7 = html_text6.replace('class', 'cellspacing=\"0\" class')
print(html_text7)

"""
<table border="1" cellspacing="0" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      ...
      ...
      ...
    </tr>
  </tbody>
</table>
"""
html_text7

表格標(biāo)題

title = "測(cè)試表格標(biāo)題"
html_text8 = html_text7.replace('class="dataframe">',
                                'class="dataframe"><caption>{}</caption>'.format(title)
                                )
html_text8

單元格顏色

print(html_text8)
"""
<table border="1" class="dataframe"><caption>測(cè)試表格標(biāo)題</caption>
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>col_a</th>
      <th>col_b</th>
      <th>col_c</th>
      <th>col_d</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>AAAAAAAAAAAAAAAA</td>
      <td>1.22288</td>
      <td>1</td>
      <td>None</td>
    </tr>
    <tr>
      <th>1</th>
      <td>HHHH</td>
      <td>2.55566</td>
      <td>NaN</td>
      <td>{'idx_1': 'dark', 'idx_2': 'light'}</td>
    </tr>
  </tbody>
</table>
"""

每一個(gè) <td> 標(biāo)簽都代表一個(gè)單元格岛心,在 <td> 中的 td 后添加 bgcolor="#ffcc00" ,即可給
單元格賦予顏色篮灼。#ffcc00 表示黃色忘古。

我們可以寫個(gè)函數(shù)指定某個(gè)單元格賦予顏色。

import re

def Godsaycolor(df, html_text, idx_row, idx_col):
    td_text = re.findall("<td>(.*?)</td>", html_text)
    text = td_text[(idx_row) * df.shape[1] + idx_col]
    html_text_fin = html_text.replace('<td>' + text,
        '<td bgcolor="#ffcc00">' + text)
    return html_text_fin

html_text9 = Godsaycolor(df_test, html_text8, 0, 3)
html_text10 = Godsaycolor(df_test, html_text9, 1, 0)

print(html_text10)

"""
<table border="1" class="dataframe"><caption>測(cè)試表格標(biāo)題</caption>
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>col_a</th>
      <th>col_b</th>
      <th>col_c</th>
      <th>col_d</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>AAAAAAAAAAAAAAAA</td>
      <td>1.22288</td>
      <td>1</td>
      <td bgcolor="#ffcc00">None</td>
    </tr>
    <tr>
      <th>1</th>
      <td bgcolor="#ffcc00">HHHH</td>
      <td>2.55566</td>
      <td>NaN</td>
      <td>{'idx_1': 'dark', 'idx_2': 'light'}</td>
    </tr>
  </tbody>
</table>
"""
html_text10

參考資料

  1. pandas 官方文檔
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诅诱,一起剝皮案震驚了整個(gè)濱河市髓堪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娘荡,老刑警劉巖干旁,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異炮沐,居然都是意外死亡争群,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門大年,熙熙樓的掌柜王于貴愁眉苦臉地迎上來换薄,“玉大人玉雾,你說我怎么就攤上這事∏嵋” “怎么了复旬?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)冲泥。 經(jīng)常有香客問我驹碍,道長(zhǎng),這世上最難降的妖魔是什么柏蘑? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任幸冻,我火速辦了婚禮,結(jié)果婚禮上咳焚,老公的妹妹穿的比我還像新娘洽损。我一直安慰自己,他們只是感情好革半,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布碑定。 她就那樣靜靜地躺著,像睡著了一般又官。 火紅的嫁衣襯著肌膚如雪延刘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天六敬,我揣著相機(jī)與錄音碘赖,去河邊找鬼。 笑死外构,一個(gè)胖子當(dāng)著我的面吹牛普泡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播审编,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼撼班,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了垒酬?” 一聲冷哼從身側(cè)響起砰嘁,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勘究,沒想到半個(gè)月后矮湘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乱顾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年板祝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片走净。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡券时,死狀恐怖孤里,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橘洞,我是刑警寧澤捌袜,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站炸枣,受9級(jí)特大地震影響虏等,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜适肠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一霍衫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侯养,春花似錦敦跌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辩稽,卻和暖如春惧笛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逞泄。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工患整, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喷众。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓并级,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親侮腹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353