一,pandas之MultiIndex的使用
文章目录- 系列文章目录
- 前言
- 一、MultiIndex是什么?
- 二、使用步骤
- 1.引入库
- 2.将要使用复核索引的数据使用上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.引入库
2.将要使用复核索引的数据使用上MultiIndex代码如下: import pandas as pd
代码如下:
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模块调整一下单元格格式,表格就很好看了,数据处理就是这么简单