首页 > 解决方案 > 如何在熊猫的多级列中将列名呈现为单个单元格?

问题描述

我正在研究列中的多级索引。我必须把这些表寄出去。对于发送表格,我使用的是df.to_html(). 下图就是我现在的位置。foo是我已转换为列的索引。

在此处输入图像描述

在转换为列时,我希望它占据两个单元格,这样看起来不错。这就是我想要实现的目标。

在此处输入图像描述

代码看起来像这样。

df = pd.DataFrame([[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]],index=['M1','M2','M3'])
df.columns = pd.MultiIndex.from_product([['x', 'y'], ['a', 'b']])
ind = df.index
df.reset_index(drop=True,inplace=True)
df.insert(0,'foo',ind)

标签: pythonpandasdataframe

解决方案


使用您提供的代码,foo未将其设置为数据框的索引。

无论如何,您可以在当前代码之后添加它,以便在将其转换为 html 之前更正数据框的标题:

df = df.rename(axis=1, level=0, mapper={"foo": ""}).rename(
    axis=1, level=1, mapper={"": "foo"}
)
df.to_html(index=False)

这样,您的数据框的 html 版本呈现所需的方式:

          x       y
  foo   a   b   a   b
M1      1   2   3   4
M2      1   2   3   4
M3      1   2   3   4

推荐阅读