使用 Python 将 Pandas DataFrame 保存为 HTML

Fariba Laiq 2023年1月30日 2022年5月16日
  1. 使用 to_html() 方法将 Pandas DataFrame 保存为 HTML 文件
  2. 手动将 Pandas DataFrame 转换为 HTML
使用 Python 将 Pandas DataFrame 保存为 HTML

有时我们将 DataFrame 渲染为 HTML 表格以在网页中表示它。如果我们想在 HTML 中显示同一个表格,我们不需要在 HTML 中编写它的代码来重新制作那个表格。

我们可以使用内置的方法或在 python 中手动编写代码来将 Pandas DataFrame 转换为 HTML 表格,这将在本文中讨论。

使用 to_html() 方法将 Pandas DataFrame 保存为 HTML 文件

在下面的代码中,我们有学生的数据。我们使用 pandas 库中提供的方法 to_html() 将 Pandas DataFrame 转换为 HTML。

我们将使用我们的 DataFrame 对象调用此方法,并传递表示表格的新 HTML 文件的名称。如果我们只传递 HTML 文件的名称,它将在当前目录中创建。

我们还可以提供路径以及 HTML 文件的名称,以将其保存在其他位置。此方法会将整个 DataFrame 转换为 <table> 元素,并且列将包裹在 <thead> 元素中。

DataFrame 的每一行都将被包裹在 HTML 的 <tr> 元素中。此方法将返回 DataFrame 的 HTML 格式。

示例代码:

#Python 3.x
import pandas as pd
df = pd.read_csv('Student.csv')
display(df)
df.to_html('Student.html')

输出:

python Pandas DataFrame

输出将在 Student.html 文件中。

HTML - 代码:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>ST_Name</th>
      <th>Department</th>
      <th>Marks</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>Jhon</td>
      <td>CS</td>
      <td>60</td>
    </tr>
    <tr>
      <th>1</th>
      <td>Alia</td>
      <td>EE</td>
      <td>80</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Sam</td>
      <td>EE</td>
      <td>90</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Smith</td>
      <td>CS</td>
      <td>88</td>
    </tr>
  </tbody>
</table>

手动将 Pandas DataFrame 转换为 HTML

将 Pandas DataFrame 保存为 HTML 的另一种方法是从头开始编写代码以进行手动转换。

首先,我们在下面的代码中以 w+ 模式打开了一个文件 student.html。如果文件不存在,此模式将创建一个文件。

在这个文件中,我们的 HTML 代码将被保存。在这里,我们将整个表包裹在 <table> 中,然后我们遍历 DataFrame 的列并将它们包裹在 <th> 中。

最后,我们对行进行了迭代并将它们包装在 <tr> 中。

示例代码:

#Python 3.x
import pandas as pd
df = pd.read_csv('Student.csv')
display(df)
with open(r'student.html', 'w+') as f:
    f.write('<table>')
    for header in df.columns.values:
        f.write('<th>'+str(header)+'</th>')
    for i in range(len(df)):
        f.write('<tr>')
        for col in df.columns:
            value = df.iloc[i][col]
            f.write('<td>'+str(value)+'</td>')
        f.write('</tr>')
    f.write('</table>')

输出:

python Pandas DataFrame

HTML - 代码:

<table><th>ST_Name</th><th>Department</th><th>Marks</th><tr><td>Jhon</td><td>CS</td><td>60</td></tr><tr><td>Alia</td><td>EE</td><td>80</td></tr><tr><td>Sam</td><td>EE</td><td>90</td></tr><tr><td>Smith</td><td>CS</td><td>88</td></tr></table>
Author: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

相关文章 - Pandas DataFrame