如何使 pandas.style.to_latex() 输出 header 包含在 {} 中的字段?

How to make pandas.style.to_latex() output header fields enclosed in {}?

我正在通过 python/pandas 制作几个 LateX 表格。 直到最近,表格的 headers 被包含在 {} 中,没有任何明确的说明,即:

\begin{tabular}{llrrr}
{} & {date} & {x} & {y} & {z} \
{} & {(yyyy-mm-dd)} & {(s)} & {(m)} & {(kg)} \
0 & 2014-03-12 & 1 & 2 & 3 \
1 & 2014-03-13 & 4 & 5 & 6 \
\end{tabular}

但最近,pandas.style.to_latex() 的输出开始如下(没有 {}):

\begin{tabular}{llrrr}
 & date & x & y & z \
 & (yyyy-mm-dd) & (s) & (m) & (kg) \
0 & 2014-03-12 & 1 & 2 & 3 \
1 & 2014-03-13 & 4 & 5 & 6 \
\end{tabular}

因为我是 post-processing python 中的这些 LateX 表格,所以我需要将 headers 包含在 {}

有人知道我必须为此做什么吗?

原始pandas数据帧可以通过以下方式生成:

columns = pd.MultiIndex.from_tuples(
    zip(['date', 'x', 'y', 'z'],
        ['(yyyy-mm-dd)', '(s)', '(m)', '(kg)']))
data = [['2014-03-12', 1, 2, 3],
        ['2014-03-13', 4, 5, 6]]
df = pd.DataFrame(data, columns=columns)

两种方式,

df.style.to_latex(siunitx=True)

(因为 siunitx 包需要这种格式)

df.style.format_index("{{{0}}}", axis=1).to_latex()

(显式使用格式化函数控制输出)