如何将单行pandas表格转换为两列横向排列的HTML表格
Pandas单行表格转换为双列横向HTML表格的实现方法
以下两种方法均可实现要求的输出效果:
方法一:基于DataFrame结构转换实现
- 先将原单行DataFrame转置,得到键值两列结构
import pandas as pd # 转置原表,重置索引获得字段名、字段值两列 transposed_df = df.T.reset_index() transposed_df.columns = ["key", "value"]- 按每2个字段为一组拆分数据,重构为每行对应两组键值的结构
# 步长为2遍历拆分数据 row_data = [] for idx in range(0, len(transposed_df), 2): tmp = transposed_df.iloc[idx:idx+2].values.flatten().tolist() # 不足两组的补空值 if len(tmp) < 4: tmp += ["", ""] row_data.append(tmp) # 生成结果表 res_df = pd.DataFrame(row_data)- 导出为无表头无索引的HTML
html_result = res_df.to_html(header=False, index=False)方法二:直接拼接HTML字符串(可完全匹配自定义样式)
该方法可以精准控制表格结构、样式属性,输出与预期完全一致的HTML:# 获取原表所有键值对 kv_pairs = list(df.iloc[0].items()) html_str = '<table border="1">' # 按每两个字段生成一行 for i in range(0, len(kv_pairs), 2): html_str += "<tr>" # 第一组键值 k1, v1 = kv_pairs[i] html_str += f"<th>{k1}</th><td>{v1}</td>" # 第二组键值(存在则添加) if i + 1 < len(kv_pairs): k2, v2 = kv_pairs[i+1] html_str += f"<th>{k2}</th><td>{v2}</td>" html_str += "</tr>" html_str += "</table>" html_result = html_str
两种方法输出的表格均为每行展示两个字段的结构,第二种方法支持直接修改标签的样式属性、单元格对齐方式等配置,适配自定义样式需求。
内容的提问来源于stack exchange,提问作者Wtaylor
相关产品推荐
相关产品推荐

