pandas中层次化索引使用规则总结
作为一个初学python的小白,学习pandas的层次化索引时,被各种[],()的组合搞晕了,网上很多文章只是按书上的例子摘录,对于原理或规则的讲述很少,使用时往往难以掌控,经过多次尝试和验证,发现了其中一些规律,欢迎大家一起验证一下。
一些基本规则
1、在[]内嵌套使用[]或()时,内嵌的[]表示同一个轴向上同一个层级的索引,内嵌的()表示同一个轴向上不同层级(层次化索引中经常用到);
2、[][]并列使用表示在前一个[]的结果中再次执行[],即按顺序选取子集;
3、使用层次化索引时,必须依层级指定标签,不允许跳过上一层级的,直接选取低层级。
Series选取子集时:
1、Series“没有列”,不存在列索引,所以[]中只能使用行索引,直接选取或使用loc选取的用法是一样的,以下以loc选取为例;
2、选取不同层级的行标签轴,每个层级只含一个标签的格式
ser.loc[row_index_level_1,row_index_level_2,…,row_index_level_n];
3、选取不同层级的标签轴,每个层级含多个索引时,用内嵌的[]把同一个层级的行索引括起来
ser.loc[[row_index_level_1_1,row_index_level_1_2],…,row_index_level_n_n]
4、Series“没有列”,这里不同层级之间的索引