8 pandas模块,多层索引

1 创建多层索引

1)隐式构造

最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组

· Series也可以创建多层索引

一般情况下,两层索引就够用了

2)显式构造 pd.MultiIndex

· 使用数组

· 使用tuple

· 使用product     最简单,推荐使用

2 对DataFrame列同样可以设置多层索引

============================

练习8:

1 创建一个DataFrame,表示张三、李四期中、期末各科成绩。

============================

3 多层索引对象的索引与切片操作

1)Series的操作

【重要】对于Series来说,直接中括号[]与使用.loc()完全一样,因此,推荐使用中括号索引和切片。

(1)索引

#第一个参数相当于多层索引的第一维,第二个参数就是第二维了

#把两个参数写在一起,会将整体作为一个参数,就把整体中的所有的参数都作为一维参数,能查到的就返回,查不到的就不返回,一维中没有期中,所以只返回了张三的查询结果,看看那下面这张截图就知道怎么回事了。

(2)切片

2)DataFrame的操作

(1)可以直接使用列名来进行索引

(2)使用行索引需要用ix(),loc()等函数

【及其重要】推荐使用loc()函数

注意在对行索引的时候,若一级行索引还有多个,对二级行索引会遇到问题!也就是说,无法直接对二级索引进行索引,必须让二级索引变成一级索引后才能对其进行索引!

同时对一二级索引进行检索

===============================

练习:

1 分析比较Series和DataFrame各种索引的方式,熟练掌握.loc()方法

2 假设张三再一次在其中考试的时候因为特殊原因放弃Python考试,如何实现

===============================

4 索引的堆(先入后出)(stack)

· stack()

· unstack()

【小技巧】使用stack()的时候,level等于哪一个,哪一个就消失,出现在行里。

【小技巧】使用unstack()的时候,level等于哪一个,哪一个就消失,出现在列里。

==========================================

练习:

1,使用unstack()将ddd变成两行,分别为期中期末

2,使用unstack()将ddd变成四行,分别为四个科目

==========================================

5 聚合操作

【注意】

· 需要指定axis

· 【小技巧】和unstack()相反,聚合的时候,axis等于哪一个,哪一个就保留。

所谓的聚合操作:平均数,方差,最大值,最小值 ......

=======================================

练习:

1 计算各个科目中期末平均成绩

2 计算各个科目张三李四的最高分

原文地址:https://www.cnblogs.com/avention/p/9086539.html

时间: 2024-10-19 17:47:25

8 pandas模块,多层索引的相关文章

pandas学习(创建多层索引、数据重塑与轴向旋转)

pandas学习(创建多层索引.数据重塑与轴向旋转) 目录 创建多层索引 数据重塑与轴向旋转 创建多层索引 隐式构造 Series 最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组,Series也可以创建多层索引. s = Series(np.random.randint(0,150,size=6),index=[['a','a','b','b','c','c'],['期中','期末','期中','期末','期中','期末']]) # 输出 a 期中 59 期末 4

Py修行路 Pandas 模块基本用法

pandas 安装方法:pip3 install pandas pandas是一个强大的Python数据分析的工具包,它是基于NumPy构建的模块. pandas的主要功能: 具备对其功能的数据结构DataFrame.Series 集成时间序列功能 提供丰富的数学运算和操作(实质是NumPy提供的) 灵活处理缺失数据(NaN) 引用方法:import pandas as pd Series Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成.索引可以自定义如果

Python 数据处理扩展包: numpy 和 pandas 模块介绍

一.numpy模块 NumPy(Numeric Python)模块是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)).据说NumPy将Python相当于变成一种免费的更强大的MatLab系统. NumPy模块提供了许多高级的数值编程工具,如:矩阵数据类型.矢量处理,以及精密的运算库等. 1).一个强大的N维数组对象Array: 2).比较成熟

Python数据分析 Pandas模块 基础数据结构与简介(一)

pandas 入门 简介 pandas 组成 = 数据面板 + 数据分析工具 poandas 把数组分为3类 一维矩阵:Series 把ndarray强大在可以存储任意数据类型可以专门处理时间数据 二维矩阵:DataFrame 三维面板数据:Panel 背景:为金融产品数据分析创建的,对时间序列支持非常好! 数据结构 导入pandas模块 import pandas as pd 读取csv文件,数据类型就是二维矩阵 DataFrame df = pd.read_csv('路径')type(df)

数据分析之pandas模块

一.Series 类似于一位数组的对象,第一个参数为数据,第二个参数为索引(索引可以不指定,就默认用隐式索引) Series(data=np.random.randint(1,50,(10,))) Series(data=[1,2,3],index=('a','b','c')) dic={'math':88,'chinese':99,'english':50} Series(data=dic)对于data来说,可以是列表.np数组.字典,当用字典时,字典的key会成为行索引 1,索引和切片 用中

numpy 模块和 pandas 模块

一.numpy模块 1.1 numpy 简介 numpy是python的一种开源的数值计算扩展库,这种库可用来存储和处理大型numpy数组. numpy库有两个作用: ? 1.区别于list列表,提供了数组操作.数组运算.以及统计分布和简单的数学模型 ? 2.计算速度快,甚至要优于python内置的简单运算,使得其成为pandas.sklearn等模块的依赖包.高级的框架如TensorFlow.PyTorch等,其数组操作也和numpy非常相似. 1.2 创建numpy数组 numpy数组即nu

十分钟入门pandas数据结构和索引

pandas数据结构和索引是入门pandas必学的内容,这里就详细给大家讲解一下,看完本篇文章,相信你对pandas数据结构和索引会有一个清晰的认识. 一.数据结构介绍 在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame.Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能:DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵

Python中pandas模块快速入门

我这里简单介绍一下Python中,pandas模块定义的两种常用的数据结构,Series和DaraFrame.Series和Python中的Dict类似,但是是结构化的,而DataFrame和数据库中的表类似. 1.pandas基本数据结构-pandas.Series&pandas.DataFrame 第二种定义DataFrame的方法不能手动设置index,只能自动生成序列.date_range('20180201',periods=8)定义时间序列,可以用freq来设置频率:s=pd.dat

模块讲解---numpymo模块,matplotlib模块,pandas模块

目录 numpy模块 matplotlib模块 pandas模块 numpy模块 numpy模块:用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学运算 在使用的时候,使用方法与其他的模块有一点不一样 import numpy as np 具体的使用方法 1.创建numpy数组--->可变 # 一组数据相乘 import numpy as np arr1 = np.array([1,2,3]) arr2 = np.array([4,5,6]) print(arr1*arr2) #