You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中重构DataFrame生成适配LaTeX的多行表头窄表格

解决方案

1. 重构DataFrame为多层索引结构

先通过重命名列、构建多层索引(MultiIndex),把目标列按分组归类,让Pandas能自动生成分组表头的LaTeX代码:

import pandas as pd

# 初始化原DataFrame
df = pd.DataFrame({
    "Measure": ["twitter", "news"],
    "Upper quartile": [0.1, 0.2],
    "Lower quartile": [0.05, 0.1],
    "P-value1": [0.05, 0.02],
    "Upper decile": [0.11, 0.22],
    "Lower decile": [0.03, 0.09],
    "P-value2": [0.04, 0.01]
})

# 重命名列,统一分组内的P-value命名
df_renamed = df.rename(columns={"P-value1": "P-value", "P-value2": "P-value"})

# 构建多层列索引,对应分组和子项
new_columns = [
    ("Measure", ""),
    ("四分位数统计", "Upper quartile"),
    ("四分位数统计", "Lower quartile"),
    ("四分位数统计", "P-value"),
    ("十分位数统计", "Upper decile"),
    ("十分位数统计", "Lower decile"),
    ("十分位数统计", "P-value")
]

# 重新排列列并设置多层索引
df_multi = df_renamed[["Measure", "Upper quartile", "Lower quartile", "P-value", "Upper decile", "Lower decile", "P-value"]]
df_multi.columns = pd.MultiIndex.from_tuples(new_columns)

2. 生成符合要求的LaTeX表格

用Pandas的to_latex方法生成带分组表头的LaTeX代码,参数设置适配多行表头需求:

# 生成LaTeX代码
latex_code = df_multi.to_latex(
    index=False,
    multirow=True,
    column_format="lcccccc",  # 第一列左对齐,其余列居中
    escape=False,
    caption="统计指标汇总表",
    label="tab:stats_summary"
)

# 打印或保存代码
print(latex_code)

3. 微调表头至指定格式(可选)

如果需要严格匹配「前三行表头+空单元格用{}填充」的要求,手动修改生成的LaTeX表头部分即可,示例调整后:

\begin{table}[ht]
\centering
\caption{统计指标汇总表}
\label{tab:stats_summary}
\begin{tabular}{lcccccc}
\toprule
{} & \multicolumn{3}{c}{四分位数统计} & \multicolumn{3}{c}{十分位数统计} \\
{} & Upper quartile & Lower quartile & P-value & Upper decile & Lower decile & P-value \\
Measure & {} & {} & {} & {} & {} & {} \\
\midrule
twitter & 0.10 & 0.05 & 0.05 & 0.11 & 0.03 & 0.04 \\
news & 0.20 & 0.10 & 0.02 & 0.22 & 0.09 & 0.01 \\
\bottomrule
\end{tabular}
\end{table}

核心优势

  • 多层索引自动实现列分组,避免手动合并LaTeX表头的繁琐操作
  • 统一子列名称让表格结构更规整,有效压缩表格宽度
  • 可通过column_format调整列对齐方式,进一步优化排版

内容的提问来源于stack exchange,提问作者David88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 13:43:13