Pandas入门(6)

层次化索引

  层次化索引是pandas的一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它使你以低维度形式处理高纬度数据。

  层次化索引一般以带有MultiIndex索引的Series的格式化输出形式。索引之间的间隔 (空格)表示直接使用上面的标签。

  层次化索引在数据重塑和基于分组的操作(如透视表生成)中扮演着重要的角色。对于一个DataFrame,每条轴都可以有分层索引,各层都可以有名字(可以是字符串,也可以是别的Python对象),如果指定了名称,它们显示在输出中(索引名不是轴标签),由于有了分部的列索引,因此可以轻松选取列分组,可以单独创建MultiIndex然后复用。

1. 重排分级排序

  有时需要重新调整某条轴上各级别的顺序,或根据指定级别上的值对数据进行排序。

  • swaplevel接受两个级别编号或名称,并返回一个互换了级别的新对象(数据不会发生变化)
  • sortlevel则根据单个级别中的值对数据进行排序(稳定的,猜测是归并)。交换级别时,常常也会用到sortlevel,这样就可以有序的结果。
  • 在层次化索引的对象上,如果索引是按字典方式从外到内排序(即调用sortlevel(0)或sort_index()的结果),数据选取操作的性能要好很多
2. 根据级别汇总统计

  许多对DataFrame和Series的描述和汇总统计都有一个level选项,它用于指定在某条轴上求和的级别。从而根据行或列上的级别来进行求和。
这其实是利用了pandas的groupby功能

3. 使用DataFrame的列

  有时根据需求会想用DataFrame的一个列或多个列来用,或者可能希望将行索引变成DataFrame的列。

  • DataFrame的set_index函数会将其一个或多个列转换为行索引,并创建一个新的DataFrame,默认情况下,那些列会从DataFrame中移除,但也可以将其保留下来(drop参数改为False,drop=False)
  • reset_index的功能跟set_index相反,层次化索引的级别会被转移到列里面 .
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值