如何遍历pandas dataframe列表并批量插入到Python生成的HTML代码中
批量将DataFrame列表写入HTML页面的实现方法
核心思路:Python的f-string不支持直接嵌入循环逻辑,因此你可以提前遍历DataFrame列表生成所有表格的HTML片段,将片段合并后再一次性插入到最终的HTML模板中即可。
完整可运行实现代码如下:
import pandas as pd # 此处替换为你自己的DataFrame列表 df_list = [ pd.DataFrame({"列1": [1,2,3], "列2": [4,5,6]}), pd.DataFrame({"姓名": ["张三","李四","王五"], "年龄": [20,25,30]}), pd.DataFrame({"商品": ["A","B","C"], "销量": [100,200,300]}) ] # 步骤1:遍历生成所有表格的HTML片段 table_segments = [] for idx, df in enumerate(df_list): # 可自定义每个表格的标题规则 table_title = f"<h3>第{idx+1}个数据表</h3>" # 调用to_html生成表格代码,head(5)保留前5行,可根据需求调整参数 table_html = df.head(5).to_html(classes="data-table", border=1) table_segments.append(f"{table_title}{table_html}<br><hr>") # 合并所有表格片段为一个字符串 all_tables = "\n".join(table_segments) # 步骤2:嵌入到完整HTML模板中 full_html = f""" <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>多数据表汇总页面</title> <style> /* 可选:自定义表格样式,不需要可以删除整个style块 */ .data-table {{ border-collapse: collapse; margin: 10px 0; width: 100%; }} .data-table th, .data-table td {{ padding: 8px; text-align: left; border: 1px solid #ddd; }} </style> </head> <body> <h1>所有数据表汇总</h1> <!-- 批量插入所有生成的表格 --> {all_tables} </body> </html> """ # 写入本地HTML文件 with open("data_tables.html", "w", encoding="utf-8") as f: f.write(full_html)
常见调整项:
- 不需要限制显示行数的话,直接删除
head(5)即可输出全量DataFrame内容 - 需要跳过空DataFrame的话,在循环中加入判断
if not df.empty:再生成对应片段即可 - 如果每个DataFrame设置了name属性,可以用
df.name作为表格标题,替换循环中的title生成规则即可 to_html方法支持设置index=False隐藏行号列,可根据需求添加参数
内容的提问来源于stack exchange,提问作者Jason H
相关产品推荐
相关产品推荐

