系列文章目录
一,pandas之MultiIndex的使用
前言
记录某次项目的数据处理中,涉及到多级表头的数据处理,pandas刚好有复合索引
MultiIndex方法
一、MultiIndex是什么?
MultiIndex 是pandas 的一种 处理复核索引的方法。
参数:
(
cls,
levels=None,
codes=None,
sortorder=None,
names=None,
dtype=None,
copy=False,
name=None,
verify_integrity: bool = True,
):
二、使用步骤
1.引入库
代码如下:
import pandas as pd
2.将要使用复核索引的数据使用上MultiIndex
代码如下:
new_nor_sum1_df.columns = pd.MultiIndex(
[['发薪公司', '纳税地', '中国籍', '非中国籍', "合计"], ['', '人数', '当月所得税']],
codes=[[0, 1, 2, 2, 3, 3, 4, 4],
[0, 0, 1, 2, 1, 2, 1, 2]])
该处使用的某项目的模拟数据。
levels:[['发薪公司', '纳税地', '中国籍', '非中国籍', "合计"], ['', '人数', '当月所得税']],
codes:[[0, 1, 2, 2, 3, 3, 4, 4], [0, 0, 1, 2, 1, 2, 1, 2]]
levels和codes是为了确定多级索引的对应关系。
levels的第一级列表['发薪公司', '纳税地', '中国籍', '非中国籍', "合计"],对应codes的[0, 1, 2, 2, 3, 3, 4, 4],
codes中是0代表’发薪公司’的位置,1代表‘纳税地’的位置, 2代表‘中国籍’的位置, 3代表‘非中国籍’的位置, 4代表‘合计’的位置。
leves的第二级列表['', '人数', '当月所得税'],对应codes的[0, 0, 1, 2, 1, 2, 1, 2],codes中的0代表''的位置,1代表'人数'的位置,2代表'当月所得税'的位置。
debug一下代码展示一下效果:
实际excel效果:
总结
使用MultiIndex处理多级表头的DataFrame数据,非常方便,处理完数据后,生成excel后,在用openpyxl模块调整一下单元格格式,表格就很好看了,数据处理就是这么简单