Pandas的学习(6.DataFrame和Series创建多层行索引以及多层列索引)
1.创建多层行索引
(1) 隐式构造
最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组
-- Series也可以创建多层索引
import numpy as np import matplotlib.pyplot as plt import pandas as pd from pandas import Series, DataFrame'''使用Series创建多层索引(隐式)''' s = Series([80, 90, 82, 92], index=[['a', 'a', 'b', 'b'], ['期中', '期末', '期中', '期末']]) print(s) """ a 期中 80期末 90 b 期中 82期末 92 dtype: int64 """'''使用DataFrame创建多层索引(隐式)''' df = DataFrame(np.random.randint(0, 150, size=(6, 3)),columns=['语文', '数学', 'python'],index=[['zsan', 'zsan', 'lisi', 'lisi', 'wwu', 'wwu'],['mid', 'end', 'mid', 'end','mid', 'end']]) print(df) """语文 数学 python zsan mid 77 60 29end 113 121 38 lisi mid 46 14 33end 115 127 41 wwu mid 35 96 77end 139 41 134 """
(2) 显示构造
--- 使用数组 pd.MultiIndex.from_arrays
--- 使用tuple pd.MultiIndex.from_tuples
--- 使用product pd.MultiIndex.from_product
"""显示构造."""'''1.使用数组 pd.MultiIndex.from_arrays''' df1 = DataFrame(np.random.randint(0, 150, size=(6, 3)),columns=['Java', 'HTML5', 'Python'],index=pd.MultiIndex.from_arrays([['张三', '张三', '李四', '李四', '王五', '王五'],['期中', '期末', '期中', '期末', '期中', '期末']])) print(df1) '''2.使用tuple pd.MultiIndex.from_tuples''' df2 = DataFrame(np.random.randint(0, 150, size=(6, 3)),columns=['Java', 'HTML5', 'Python'],index=pd.MultiIndex.from_tuples([('张三', '期中'), ('张三', '期末'), ('李四', '期中'), ('李四', '期末'), ('王五', '期中'),('王五', '期末')])) print(df2) '''3.使用product pd.MultiIndex.from_product''' '''最简单,推荐使用''' df3 = DataFrame(np.random.randint(0, 150, size=(6, 3)),columns=['Java', 'HTML5', 'Python'],index=pd.MultiIndex.from_product([['张三', '李四', '王五'], ['期中', '期末']])) print(df3) """ # 三种不同的显示创建方式,同样的结果Java HTML5 Python 张三 期中 133 79 133期末 31 50 104 李四 期中 63 96 45期末 145 14 103 王五 期中 145 39 53期末 41 98 46 """
2.创建多层列索引
除了行索引index,列索引columns也能用同样的方法创建多层索引
"""多层列索引""" df4 = DataFrame(np.random.randint(0, 150, size=(3, 6)),columns=pd.MultiIndex.from_product([['Java', 'HTML', 'Python'], ['期中', '期末']]),index=['张三', '李四', '小张']) print(df4) """Java HTML Python 期中 期末 期中 期末 期中 期末 张三 37 132 77 18 127 76 李四 8 47 65 59 68 63 小张 16 65 138 28 56 135 """
其他的方法都是类似的
Pandas的学习(6.DataFrame和Series创建多层行索引以及多层列索引)相关推荐
- Pandas的学习(3.DataFrame的创建方法和三种索引方法(iloc、loc、values)以及切片)
DataFrame DataFrame是一个[表格型]的数据结构,可以看做是[由Series组成的字典](共用同一个索引).DataFrame由按一定顺序排列的多列数据组成,设计初衷是将Series的 ...
- pandas读取csv数据、参数指定作为行索引的数据列索引列表形成复合(多层)行索引、使用set_index函数把数据列转化为行索引(keys参数指定需要被转化的数据列)
pandas使用read_csv函数读取csv数据.index_col参数指定作为行索引的数据列索引列表形成复合(多层)行索引.header参数指定作为
- Pandas的学习(4.DataFrame之间的运算以及DataFrame和Series之间的运算)
DataFrame的运算 1.DataFrame之间的运算 同Series一样: --- 在运算中自动对齐不同索引的数据 --- 如果索引不对应,则补NaN 无论是行不对应还是列不对应,都 ...
- dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...
一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...
- 【深度学习】array, list, tensor,Dataframe,Series之间互相转换总结
一.前言 对于在Deep Learning的学习中总会有几个数据类型的转换,这次想把这些常用的转换做一个总结,方便以后看. 这些主要包括:Dataframe.Series(pandas), array ...
- 【Pandas库】(3) DataFrame的创建方法及基本操作
各位同学好,今天给大家介绍一下Pandas库中DataFrame类型数据的创建方法和基本操作. 文章内容如下: (1)使用字典类创建. 字典类有:①数组.列表.元组构成的字典:②Series构造的字典 ...
- 【数据分析】认识Pandas:DataFrame和Series结构、属性
数据分析工具--Pandas 认识Pandas Dataframe 结构 DataFrame 构造方法 dtype参数 Series 结构 Series 构造方法 DataFrame和Series属性 ...
- 【串讲总结】array, list, tensor,Dataframe,Series之间互相转换总结
一.前言 对于在Deep Learning的学习中总会有几个数据类型的转换,这次想把这些常用的转换做一个总结,方便以后看. 这些主要包括:Dataframe.Series(pandas), array ...
- pandas 模块学习
2019独角兽企业重金招聘Python工程师标准>>> pandas模块 方法有两个 1.在windows下安装pandas,只安装pandas一个包显然是不够的,它并没有把用到的相 ...
最新文章
- SW6206超级华为快充5V5A,全协议OPPO闪充、自带电量计量、LED 灯/数码管显示
- 关于在web项目中实现本地打印
- python下载安装教程mac-教程|如何在mac上为Python安装XGBoost!
- linux内核网络协议栈--linux bridge(十九)
- java oj主机名排序_oj教程--排序算法(Java)
- 5、修改视图(ALTER VIEW)
- 牛客题霸 NC20 数字字符串转化成IP地址
- Linux设备驱动程序学习(4) -高级字符驱动程序操作[(1)ioctl and llseek]
- REVERSE-PRACTICE-BUUCTF-15
- Android性能优化 笔记
- 苹果手机查看python代码的免费软件-Python实现抢购IPhone手机
- Python实现机器学习
- 选项不属于HTML语言特点,Web前端开发初级模拟测试卷一(2)
- 面向视频领域的边缘计算白皮书
- 微信扫一扫门禁开门小程序开发制作
- 颠覆平庸 在技术上持续精进
- 计算机视觉 | 八斗人工智能 (上)
- 关于ES6中let 和 const 命令的用法以及注意事项:
- static在c语言中是什么意思,在C语言中static有什么含义
- Windows如何打开命令模式