Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
291 views
in Technique[技术] by (71.8m points)

python - How can I change the styles of pandas DataFrame headers?

I have the following Python script which generates a HTML table. Now I want to change some styles of the table, but I'm having problems with changing the font sizes of the headers.

import pandas as pd

df = pd.DataFrame({'col1': [1, 2, 3, 4]})

html = (df.style
        .set_table_styles({'selector': 'th', 'props': [('font-size', '5pt')]})
        .set_properties(**{'font-size': '10pt'}).render())

f = open('test.html', 'wb')
f.write(html)

How can I change the styles of headers?

<style  type="text/css" >
    #T_f85befdc_2093_11e8_85e2_08002718d81b  {
    }    #T_f85befdc_2093_11e8_85e2_08002718d81b  {
    }    #T_f85befdc_2093_11e8_85e2_08002718d81brow0_col0 {
            font-size:  10pt;
        }    #T_f85befdc_2093_11e8_85e2_08002718d81brow1_col0 {
            font-size:  10pt;
        }    #T_f85befdc_2093_11e8_85e2_08002718d81brow2_col0 {
            font-size:  10pt;
        }    #T_f85befdc_2093_11e8_85e2_08002718d81brow3_col0 {
            font-size:  10pt;
        }</style>  
<table id="T_f85befdc_2093_11e8_85e2_08002718d81b" > 
<thead>    <tr> 
        <th class="blank level0" ></th> 
        <th class="col_heading level0 col0" >col1</th> 
    </tr></thead> 
<tbody>    <tr> 
        <th id="T_f85befdc_2093_11e8_85e2_08002718d81b" class="row_heading level0 row0" >0</th> 
        <td id="T_f85befdc_2093_11e8_85e2_08002718d81brow0_col0" class="data row0 col0" >1</td> 
    </tr>    <tr> 
        <th id="T_f85befdc_2093_11e8_85e2_08002718d81b" class="row_heading level0 row1" >1</th> 
        <td id="T_f85befdc_2093_11e8_85e2_08002718d81brow1_col0" class="data row1 col0" >2</td> 
    </tr>    <tr> 
        <th id="T_f85befdc_2093_11e8_85e2_08002718d81b" class="row_heading level0 row2" >2</th> 
        <td id="T_f85befdc_2093_11e8_85e2_08002718d81brow2_col0" class="data row2 col0" >3</td> 
    </tr>    <tr> 
        <th id="T_f85befdc_2093_11e8_85e2_08002718d81b" class="row_heading level0 row3" >3</th> 
        <td id="T_f85befdc_2093_11e8_85e2_08002718d81brow3_col0" class="data row3 col0" >4</td> 
    </tr></tbody> 
</table> 
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I've found out I need to pass a parameter as a list to Styler.set_table_styles(). It's now working with the following code.

html = (df.style
        .set_table_styles([{'selector': 'th', 'props': [('font-size', '5pt')]}])
        .set_properties(**{'font-size': '10pt'}).render())

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...