博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pandas dataframe多重索引常用操作
阅读量:4295 次
发布时间:2019-05-27

本文共 721 字,大约阅读时间需要 2 分钟。

增加(创建)

df1=pd.DataFrame(np.arange(12).reshape(4,3),index=[list("AABB"),[1,2,1,2]],columns=[list("XXY"),[10,11,10]]) df1.index=pd.MultiIndex.from_arrays([list("AABB"),[3,4,3,4]],names=["AB","num"])
df = df.set_index(['class','id'])

修改

df1.columns.names=['XY','sum'] 
df1.index.names=['AB','num']
df1.index=pd.MultiIndex.from_arrays([list("AABB"),[3,4,3,4]],names=["AB","num"])
df1.swaplevel('AB','num')

查询

df.loc[('A',slice(None)),:]
df2.loc[('语文',slice(None)),:]
UnsortedIndexError: 'MultiIndex Slicing requires the index to be fully lexsorted tuple len (2), lexsort depth (0)' 

对index排序后切片选择index

df2 = df2.sort_index(level='课程')
df2.loc[('语文',slice(None)),:]

获取相应内容

.get_level_values()    Index    level    int/name: 获取对应级别的索引

 

参考:

转载地址:http://oqyws.baihongyu.com/

你可能感兴趣的文章
各类总线传输速率
查看>>
有关分散加载文件scatter的理解 关键是加载域 加载地址与执行域地址的 处理
查看>>
RO,RW,ZI 和scatter file详解(转载)
查看>>
Coap协议学习笔记
查看>>
谈"http get和post的区别"
查看>>
Java虚拟机学习笔记(一)——JVM运行时数据区和常见内存错误
查看>>
Java浅拷贝和深拷贝
查看>>
HTTP协议基础(HTTP 1.1)
查看>>
从字节码看Java中for-each循环(增强for循环)实现原理
查看>>
Java集合类框架学习 1 —— 概述与基础
查看>>
Java集合类框架学习 2 —— ArrayList(JDK1.8/JDK1.7/JDK1.6)
查看>>
Java集合类框架学习 3 —— LinkedList(JDK1.8/JDK1.7/JDK1.6)
查看>>
为什么HashMap继承了AbstractMap还要实现Map接口
查看>>
Java集合类框架学习 4.1 —— HashMap(JDK1.6)
查看>>
Java集合类框架学习 4.2 —— HashMap(JDK1.7)
查看>>
Java集合类框架学习 4.3 —— HashMap(JDK1.8)
查看>>
简单了解sun.misc.Unsafe
查看>>
Java集合类框架学习 5.1 —— ConcurrentHashMap(JDK1.6)
查看>>
Java集合类框架学习 5.2 —— ConcurrentHashMap(JDK1.7)
查看>>
Java集合类框架学习 5.3—— ConcurrentHashMap(JDK1.8)
查看>>