Pandas层次化索引

1. 创建多层索引

隐式索引:

常见的方式是给dataframe构造函数的index参数传递两个或是多个数组

Series也可以创建多层索引

Series多层索引

B =Series(np.random.randint(0,150,size=10),index=pd.MultiIndex.from_product([list("ABCDE"),["期中","期末"]]))

B

Dataframe多层索引的创建(推荐使用)

多层行索引

A = DataFrame(np.random.randint(0,150,size=(10,3)),columns=["数学","语文","英语"],

index=pd.MultiIndex.from_product([list("ABCDE"),["期中","期末"]]))

A

对象方式多行列索引

B= DataFrame(np.random.randint(0,150,size=(3,20)),index=["数学","语文","英语"],columns=pd.MultiIndex.from_product([list("ABCDE"),["期中","期末"],["上","下"]]))

B

元祖方式创建多层索引

A = DataFrame(np.random.randint(0,150,size=(4,3)),columns=["数学","语文","英语"],

index=pd.MultiIndex.from_tuples([("A","期中"),("A","期末"),("B","期中"),("B","期末")]))

A

数组方式创建多层索引

多层索引的对象的索引和切片

Datafrane多层索引

行索引:

A.loc["A","期中"]

B.loc["A","期中","上"]

列索引:

B["A","期中","上"]

Series多层索引’

行切片以下两种都适用

D["A","期中"]

D.loc["A","期中"]

多层索引的切片

注:对于多层索引的切片必须排好顺序,才能进行切片,使用sort_index()函数对索引进行排序(单层索引可以切片可以不考虑索引的顺序)。

对行进行切片

A.loc["A":"C"]

A.iloc[1:3]

对列进行切片同行切片一样,使用显性索引和隐形索引对数据第二维进行切片

对数据进行排序是,使用sort_values()对数据进行排序

如:A.sort_values(by=["数学"])  #对按数学成绩进行排序

pandas中层次化索引与切片的更多相关文章

  1. 利用Python进行数据分析(11) pandas基础: 层次化索引

      层次化索引 层次化索引指你能在一个数组上拥有多个索引,例如: 有点像Excel里的合并单元格对么? 根据索引选择数据子集   以外层索引的方式选择数据子集: 以内层索引的方式选择数据: 多重索引S ...

  2. Pandas基本功能之层次化索引及层次化汇总

    层次化索引 层次化也就是在一个轴上拥有多个索引级别 Series的层次化索引 data=Series(np.random.randn(10),index=[ ['a','a','a','b','b', ...

  3. pandas:由列层次化索引延伸的一些思考

    1. 删除列层次化索引 用pandas利用df.groupby.agg() 做聚合运算时遇到一个问题:产生了列方向上的两级索引,且需要删除一级索引.具体代码如下: # 每个uesr每天消费金额统计:和 ...

  4. Pandas中Series和DataFrame的索引

    在对Series对象和DataFrame对象进行索引的时候要明确这么一个概念:是使用下标进行索引,还是使用关键字进行索引.比如list进行索引的时候使用的是下标,而dict索引的时候使用的是关键字. ...

  5. pandas(五)处理缺失数据和层次化索引

    pandas用浮点值Nan表示浮点和非浮点数组中的缺失数据.它只是一个便于被检测的标记而已. >>> string_data = Series(['aardvark','artich ...

  6. Pandas中loc,iloc与直接切片的区别

    最近使用pandas,一直搞不清楚其中几种切片方法的区别,今天专门看了一下. 0. 把Series的行index或Dataframe的列名直接当做属性来索引. 如: s.index_name df.c ...

  7. numpy和pandas的基础索引切片

    Numpy的索引切片 索引 In [72]: arr = np.array([[[1,1,1],[2,2,2]],[[3,3,3],[4,4,4]]]) In [73]: arr Out[73]: a ...

  8. (三)pandas 层次化索引

    pandas层次化索引 1. 创建多层行索引 1) 隐式构造 最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组 Series也可以创建多层索引 import numpy ...

  9. pandas中DataFrame的ix,loc,iloc索引方式的异同

    pandas中DataFrame的ix,loc,iloc索引方式的异同 1.loc: 按照标签索引,范围包括start和end 2.iloc: 在位置上进行索引,不包括end 3.ix: 先在inde ...

随机推荐

  1. jar包冲突问题

    这两天在启动一个新项目的时候,项目一直启动不了,报StackOverFlow; java.util.concurrent.ExecutionException: java.lang.StackOver ...

  2. 极客学院年VIP卡原价260的F码,200出售

    F码是中国最大的IT职业在线教育平台——极客学院推出的VIP时间兑换码,凭此可在极客学院官网兑换年VIP,畅享平台上所有IT技术课程. 购买请点击 http://www.bejson.com/othe ...

  3. 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏

    一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...

  4. UI2_同步下载

    // // ViewController.m // UI2_同步下载 // // Created by zhangxueming on 15/7/17. // Copyright (c) 2015年 ...

  5. 啊哈算法之巧用队列解密QQ号

    简述 本算法摘选自啊哈磊所著的<啊哈!算法>第二章第一节的题目——使用队列来解密举例中按照规则加密的QQ号.文中代码使用C语言编写,博主通过阅读和理解,重新由Java代码实现了一遍,意在深 ...

  6. JSON(未完待续,等讲到对象时再加)

    1 定义 JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言:JSON 使用 Jav ...

  7. Git 连接远程仓库Github

    创建SSH Key. 在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步. 如果没有,打开Shell(W ...

  8. 'gets' undeclared here (not in a function)

    原文:http://www.cnblogs.com/hjj801006/p/3988220.html 1.在命令行输入:find -name stdio.in.h.查到有两个文件中含有stdio.in ...

  9. github入门之更改提交操作--6

    1.回溯历史版本 1.1.回溯到创建feature-A分支前 1.1.1.要让仓库的HEAD.暂存区.当前工作树回溯到指定状态,需要用到提供目标时间点的哈希值 1.1.2.回溯至未创建feature- ...

  10. redmine安装详解

    1.Linux:centos6.4(32位)2.Gcc的编译环境.使用make命令编辑.yum install gcc-c++ 3.PCRE PCRE(Perl Compatible Regular ...