文章目录
一、层级索引
它是一个MultiIndex对象
设置多个列索引:set_index([‘a’,‘b’],inplace=True),注意a,b顺序,若不同则有区别
选取子集:
- 外层选取:loc[‘outer_index’]
- 内层选取:loc[‘outer_index’,‘inner_index’]
交换层级顺序:swaplevel()
层级索引排序:sort_index(level=)
二、分组聚合
2.1、介绍
分组:对数据集进行分组 ,然后对每组进行统计分析
聚合:数组产生标量的过程,如mean(),count()等,常用于对分组后的数据进行计算。
分组运算过程:
- 拆分:进行分组的根据
- 应用:每个分组运行的计算规则
- 合并:把每个分组的计算结果合并起来
内置的聚合函数:sum()、mean()、max()、min()、count()
2.2、分组操作
(1) 按单列分组
obj.groupby(‘label’)
(2)多列分组
obj.groupby([‘label’,‘label2’])产生多层DataFrame
(1)groupby()操作后产生GroupBy对象,分为DataFrameGroupBy和SeriesGroupBy
(2)GroupBy对象没有进行实际运算,只是包含分组的中间数据,只有在经过聚合操作后才会产生结果,常用的聚合操作有mean(),max(),size()【每一个分组的大小】,count()
(3)非数值数据不进行分组运算
2.3、自定义分组
方法一:groupby()中传入自定义函数进行分组,操作针对的是索引
# 代码片段举例
def get_score_group(score):
if score<60:
score_group = 'low'
elif score<=80:
score_group='middle'