4

I have the following Python script which generates an 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> 

1 Answer 1

8

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())
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.