pandas层次化索引,在轴上拥有多个级别索引。

MultiIndex(Hierarchical indexing)

import pandas as pd

from pandas import Series,DataFrame

import numpy as np

data = Series(np.random.randn(10),index=[['a','a','a','b','b','b','c','c','d','d'],[1,2,3,1,2,3,1,2,2,3]])

data
Out[6]:
a 1 -0.409894
   2 -0.887154
   3 2.168980
b 1 0.307506
   2 -2.130029
   3 1.322515
c 1 1.666894
   2 0.090972
d 2 -1.662580
   3 1.677856
dtype: float64

可以看到index的数据类型

data.index
Out[7]:
MultiIndex(levels=[[u'a', u'b', u'c', u'd'], [1, 2, 3]],
labels=[[0, 0, 0, 1, 1, 1, 2, 2, 3, 3], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 1, 2]])

对于层次化索引对象,可以在内层索引data[:,2]得到索引值为2的数据,也可以通过data['a'],data.ix[]在外层索引。

对于DataFrame每条轴都可以有层次化索引:

frame = DataFrame(np.arange(12).reshape((4,3)),index=[['a','a','b','b'],[1,2,3,4]],columns=[['O','O','C'],['G','R','G']])

frame
Out[36]:
     O    C
     G R G
a 1 0 1 2
   2 3 4 5
b 3 6 7 8
   4 9 10 11

可以通过轴的索引获取数据frame['O']获得O列的数据,frame.ix['a']获得a行的数据。

可以给轴的索引指定名字

frame.index.names=['key1','key2']

frame.columns.names=['state','color']

可以通过frame.swaplevel('key1','key2')交换分级顺序,也可以使用sortlevel进行排序。

frame.swaplevel(0,1).sortlevel(0)

Out[47]:
state O C
color G R G
key2 key1
1 a 0 1 2
2 a 3 4 5
3 b 6 7 8
4 b 9 10 11

还可以通过

frame.sum(level='color',axis=1)汇总统计

转载于:https://www.cnblogs.com/zhoujunr1/p/5995449.html

pandas入门(1)相关推荐

  1. 【直播】耿远昊:Pandas入门讲解(安泰第四届数据科学训练营)

    Pandas入门讲解 直播信息 主讲人:耿远昊,Datawhale成员,joyful-pandas作者. 直播时间:2021年04月07日 20:00~21:00 直播内容: 时间序列中的必知必会: ...

  2. python花萼长度表_Python 数据分析答疑 5:Pandas入门

    8.23 第五课 Pandas入门作业 1: 使用如下代码创建 DataFrame, gdp = {"country":["United States", &q ...

  3. python使用教程pandas-十分钟搞定pandas(入门教程)

    本文是对pandas官方网站上<10Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯上 ...

  4. python使用教程pandas-Python 数据处理库 pandas 入门教程基本操作

    pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有表现力的数据结 ...

  5. pandas pivot 占比_数据处理进阶pandas入门(十八)

    回顾 在数据处理进阶pandas入门(十七)中,我们介绍了pandas中对groupby()方法的分组数据处理的两个方法:transform()和apply().我们需要掌握好这两个方法,对分组数据进 ...

  6. Pandas入门3(dtype+fillna+replace+rename+concat+join)

    文章目录 5. dtype 数据类型 6. Missing data 缺失值 6.1 查找缺失值 pd.isnull(),pd.notnull() 6.2 填补缺失值 fillna(),replace ...

  7. Pandas入门2(DataFunctions+Maps+groupby+sort_values)

    文章目录 3. Summary Functions and Maps 3.1 Summary Functions 数据总结函数 3.1.1 describe() 3.1.2 mean(),median ...

  8. Pandas入门1(DataFrame+Series读写/Index+Select+Assign)

    文章目录 1. Creating, Reading and Writing 1.1 DataFrame 数据框架 1.2 Series 序列 1.3 Reading 读取数据 2. Indexing, ...

  9. pandas series取值_【小学生级】pandas入门到精通备查表——AI未来系列3

    在未来面前,每个人都是学生 江海升月明,天涯共此时,关注江时! 引 子 篇为AI未来系列第三篇,中阶部分开始.pandas的数据分析功能比excel强太多,基本上学会pandas,走遍天下都不怕.这是 ...

  10. python数据分析df_Python数据分析pandas入门!(附数据分析资料)

    Python数据分析pandas入门!(附数据分析资料) 1.pandas数据结构之DataFrame+ 这是小编准备的python数据分析资料!进群:700341555即可获取! Python数据分 ...

最新文章

  1. 测试计划和自动化测试思考
  2. 201521123038 《Java程序设计》 第十周学习总结
  3. Technical Artist的不归路 —— Kajiya-Kay Shading
  4. C#最佳工具集合:IDE、分析、自动化工具等
  5. 选择适合你的开源 OLAP 引擎
  6. SpringMVC前传--从Struts 1.x-2.x MVC-Spring 3.0 MVC
  7. 20190906每日一句
  8. paip.url参数格式化.txt
  9. java多线程编程实例
  10. ILSVRC2015-VID数据集结构一览图
  11. 消消乐游戏算法实现(三消乐)
  12. 发送的邮件还能撤回吗?如何撤回已经发出的邮件?
  13. Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress实践
  14. RT_Thread_空闲线程
  15. 生物基础-多组学联合分析
  16. 【机器学习】图像语义分割常用指标Dice系数 敏感性 特异性 IOU及python代码实现
  17. 创业项目怎么获得专业的投融资服务?
  18. 都匀三中2021高考成绩查询,都匀高考语文指南
  19. P2P-资金存管系统充值业务流程
  20. 计算几何之用叉乘求多边形面积

热门文章

  1. 网络营销——浅析网站改版之后对网站展开新的网络营销有哪些影响?
  2. 企业网站设计方案需先明确网站主题
  3. 优化老手分享网络优化中的4大方法
  4. python construct_Python construct包_程序模块 - PyPI - Python中文网
  5. eclipse新建一个java_Eclipse中新建一个java源文件的步骤
  6. 服务器新增svn 文件,公网的SVN服务器,批量新增文件会报错
  7. 通过apt自动生成建造者模式单线程版代码(二)
  8. 开发日记-20190423 关键词 模块化完整方案实现 blog读后感
  9. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...
  10. cassandra 集群并发测试脚本