如何将多级索引DataFrame转换为指定格式的Markdown表格?
如何将多级索引的DataFrame导出为拆分列的Markdown表格?
我有一个带多级索引的DataFrame,想要生成的Markdown表格格式如下:
| | | col | |-------|----------|-------| | April | 1 | 6 | | April | 2 | 7 | | August| 1 | 14 |
但使用df.to_markdown(tablefmt='github')后得到的结果是:
| | col | |------------------|-------| | ('April', 1) | 6 | | ('April', 2) | 7 | | ('August', 1) | 14 |
请问怎么实现我想要的表格格式?
解决方案
核心思路是先把多级索引转换为普通列,再导出Markdown表格:
- 重置多级索引为列
使用reset_index()方法将原来的多级索引拆解成单独的列:
df_reset = df.reset_index()
如果你的多级索引没有命名,生成的列名会是level_0、level_1这类默认名称。
- 生成目标格式的Markdown表格
对重置后的DataFrame调用to_markdown():
print(df_reset.to_markdown(tablefmt='github'))
自定义表头名称
如果想给拆分后的索引列设置自定义名称,先给多级索引命名再重置:
# 给多级索引设置名称 df.index.names = ['Month', 'Num'] # 重置索引 df_reset = df.reset_index() # 生成表格 print(df_reset.to_markdown(tablefmt='github'))
空表头效果
如果想要和示例一样的空表头,重置后重命名列即可:
df_reset = df.reset_index().rename(columns={'level_0': '', 'level_1': ''}) print(df_reset.to_markdown(tablefmt='github'))
内容的提问来源于stack exchange,提问作者Dhruv
相关产品推荐
相关产品推荐

