Pandas DataFrame to HTML: Converting and Styling Your Data for Web Display

Introduction

link to this section

Pandas is an immensely popular data manipulation library for Python, providing data structures and functions needed to manipulate and analyze structured data. One of its versatile features includes converting a DataFrame to HTML format, which can be particularly useful when presenting data on a webpage. In this blog, we will explore how to use the to_html() function to transform your Pandas DataFrame into an HTML table, along with various options to style and customize the output.

Getting Started with to_html()

link to this section

The to_html() function in Pandas converts a DataFrame to an HTML table. The basic syntax is quite straightforward:

html_string = df.to_html() 

Here, df is your Pandas DataFrame, and the function returns an HTML string that represents the table. You can then display this HTML string on a webpage or save it to an HTML file.

Customizing the Table Output

link to this section

Pandas provides a variety of options in the to_html() function to customize the output according to your needs.

1. Specifying Columns:

You can choose specific columns to be displayed in the HTML table:

html_string = df.to_html(columns=['Column1', 'Column2']) 

2. Header and Index:

You can choose whether to display the header and index in the table:

html_string = df.to_html(header=False, index=False) 

3. Styling with Bootstrap:

You can integrate Bootstrap styling if you are using Bootstrap in your web project:

html_string = df.to_html(classes='table table-striped table-hover') 

4. Conditional Formatting:

Apply conditional formatting to the table to highlight certain values:

def highlight_max(s): 
    is_max = s == s.max() 
    return ['background-color: yellow' if v else '' for v in is_max] 
    
html_string = df.style.apply(highlight_max).to_html() 

5. Truncating Data:

For large DataFrames, you might want to truncate the data to display only a subset:

html_string = df.to_html(max_rows=10, max_cols=5) 

Saving to HTML File

link to this section

You can save the HTML string directly to a file using the to_html() function:

df.to_html('output_table.html') 

This creates an HTML file named output_table.html in your working directory.

Embedding in Webpages

link to this section

Once you have the HTML string or file, you can embed it into your webpage. If you have the HTML string, you can insert it directly into your HTML file using a template engine or any other method you prefer.

Conclusion

link to this section

Converting a Pandas DataFrame to an HTML table is a seamless process with the to_html() function. This functionality is particularly useful for data analysts and developers who need to present data on web pages in a tabular format. With various customization options available, you can tailor the output to meet your specific requirements, ensuring a clean and readable data presentation for your audience.

By mastering the use of to_html() , you enhance your data presentation skills, making your findings and insights more accessible and understandable to your audience, regardless of their technical background.