如何从 DataFrame 创建 HTML 表

我想从 DataFrame 创建一个 HTML 表。表的列数是固定的(不会改变)。但表的行号总是在变化。我简化了我的代码,以便任何 csv 文件都足以重现该问题。我的代码来自这里

注意:我将设置 HTML 代码的样式(给单元格着色、更改字体大小等),我知道DataFrame.to_html功能。但不可能用它来设置 HTML 代码的样式。所以我没有使用它。

这是我尝试过的:

import pandas as pd


data=pd.read_csv("auto.csv") 

data = data.iloc[:3, : 7] #get first 3 rows and 7 columns

print(data.describe)


# Send email

table = []

table.append("<table>\n")

for obj in data:

    table.append("\t<tr>\n")

    td = []

    for key in dir(obj)[:7]:

        td.append("<td>{0}</td>".format(key))

    table.append("\t\t"+"".join(td))

    table.append("\n\t</tr>\n")


table.append("</table>")


print("".join(table))

这就是结果


<table>

        <tr>

                <td>__add__</td><td>__class__</td><td>__contains__</td><td>__delattr__</td><td>__dir__</td><td>__doc__</td><td>__eq__</td>

        </tr>

        <tr>

                <td>__add__</td><td>__class__</td><td>__contains__</td><td>__delattr__</td><td>__dir__</td><td>__doc__</td><td>__eq__</td>

        </tr>

        <tr>

                <td>__add__</td><td>__class__</td><td>__contains__</td><td>__delattr__</td><td>__dir__</td><td>__doc__</td><td>__eq__</td>

        </tr>

        <tr>

                <td>__add__</td><td>__class__</td><td>__contains__</td><td>__delattr__</td><td>__dir__</td><td>__doc__</td><td>__eq__</td>

        </tr>

        <tr>

                <td>__add__</td><td>__class__</td><td>__contains__</td><td>__delattr__</td><td>__dir__</td><td>__doc__</td><td>__eq__</td>

        </tr>

        <tr>

                <td>__add__</td><td>__class__</td><td>__contains__</td><td>__delattr__</td><td>__dir__</td><td>__doc__</td><td>__eq__</td>

        </tr>

        <tr>

                <td>__add__</td><td>__class__</td><td>__contains__</td><td>__delattr__</td><td>__dir__</td><td>__doc__</td><td>__eq__</td>

        </tr>

</table>



慕标5832272
浏览 108回答 1
1回答

潇湘沐

请参阅DataFrame.to_html将 DataFrame 渲染为 HTML 表。from io import StringIOimport pandas as pdstyles = '''\<style>td {background-color: tan}</style>'''data=pd.read_csv("auto.csv") buff = StringIO()data.to_html(buff)html_string = buff.getvalue()print(styles + html_string)
打开App,查看更多内容
随时随地看视频慕课网APP