Pandas长表转宽表时如何实现指定的多级表头输出格式
实现方案
这个需求可以实现,核心是给pivot后的宽表设置多层列索引,pandas会自动合并相同的上层表头,刚好匹配你需要的格式。
完整代码示例
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ "COL1": ["A", "A"], "COL2": ["XXXX", "YYYY"], "Frequency": [1022919, 224847] }) # 第一步:执行pivot得到基础宽表,并把索引COL1转为普通列 pivot_df = df.pivot_table(index=["COL1"], columns='COL2', values='Frequency').reset_index() # 第二步:构造双层列索引 # 通用写法,适配COL2任意数量的取值 col_tuples = [("COL1", "Frequency")] + [("COL2", col_val) for col_val in pivot_df.columns[1:]] pivot_df.columns = pd.MultiIndex.from_tuples(col_tuples) # 输出结果 print(pivot_df)
输出效果
运行后打印的结果格式如下,和你需要的结构完全一致:
COL1 COL2 Frequency XXXX YYYY 0 A 1022919 224847
pandas渲染多层索引时会自动合并上层相同的表头,在Jupyter Notebook、导出Excel等场景都会显示为合并单元格的样式,完全匹配你给出的表格结构。
内容的提问来源于stack exchange,提问作者Peter Chen
相关产品推荐
相关产品推荐

