Pandas 基础2|学习笔记

简介: 快速学习 Pandas 基础2

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践Pandas 基础2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15381


Pandas 基础2

 

内容介绍

一、copping Entries from an Axis (按轴删除记录)

二、Indexing,Selection,and Filtering(索引,选择,过滤)

 

一、copping Entries from an Axis (按轴删除记录)

对于series , drop 会返回一个新的 object ,并删去你指定的 axis 的值:

第二个常用的功能是删除记录,可以按照坐标轴来删除记录。

对于 series , drop 会返回一个新的 object ,并删去你指定的 axis 的值:

In [14]: obj = pd . Series ( np arange (5.), index =[' a ',' b ',’ c ',’ d ',‘e’])

Out [14]: a 0.0

b1.0

c 2.0

d 3.0

e 4.0

dtype :float64

In [15]: new _ obj = obj . dropp ’)

new _ obj

Out [15]:  a 0.0

b 1.0

d 3.0

e 4.0

dtype :float64

先创建一个0-4的Serious缩影,abcde结果零到abcde左边一列就是缩影。然后删除drop函数删除c这一行。

c这行删掉了,引号里面挤的是个索引,按照索引来删除也是按行来删除。

In [15]: obj . drop ([ Id ',' c '])

Out [15]: a 0.0

b 1.0

e 4.0

dtype :float64

这个例子来删除,同时可以给第几行的缩影,删除D和C,完成以后就剩下了abe。

他是Range十六个数据,改成四行四列四行四列,他的行的缩影是Index。列的名字缩影是one two three four创建一下,然后可以指定行和列来删除。行的处理可以给一个行的标签序列。

对于 DataFrame , index 能按行或列的 axis 来删除:

[16]: data = pd . DataFrame (nр. arange (16). reshape (4,4),

index =[' Ohio ,’ Colorado ’,' Utah ’,’ New York ’],

columns =[' one ',’ two ',’ three ',’ four ’])

行处理:如果a sequence of lables(一个标签序列)来调用drop,会删去row lables(axis0)

列处理:drop列的话,设定axis=1或axis=‘columns’

drop行的一个,放在列表里面是个序列,一批一起删除。列出来的时候也是一样的,可以指明是这个坐标等于1。Axis等于1是列,axis等于Columns,这里来删除。

按列来删除,然后只剩下one three four。

然后也可以用axis等于Columns来删除。注意可以不返回一个新的Object。而是直接更改原来的Serious或者是带From,就要设一个in place的参数。

 

二、Indexing,Selection,and Filtering(索引,选择,过滤)

series indexing ( obj […])相当于 numpy 的 array indexing ,而且除了整数,还可以使用 series 的 index :

In [21]: obj = pd . Series (nр. arange (4.), index =[' a ',' b ,' c ’,’ d '])

obj

Out [21]: a 0.0

b1.0

c 2.0

d 3.0

dtype :float64

In [22]: obj [' b ]

Out [22]:1.0

In [23]:obj [1]

In [24]: obj [1]

Out [24]:1.0

In [24]:obj [2:4]

Out [24]: c 2.0

d 3.0

dtype :float64

In [25]:#选中行

obj [['ы,' a ',' d ']

Out [25]: b 1.0

a 0.0

d 3.0

dtype :float64

In [26]:#选中行 I

obj [Г b ,' a ,' d ']]

Out [26]: b 1.0

a 0.0

d 3.0

dtype :float64

In [26]:obj [[1,3]] ]#选列表中的两个元素

Out [26]: b 1.0

d 3.0

dtype :float64

In [27]: obj [ obj く2]

Out [27]:  a 0.0

b 1.0

dtype :float64

用 label 来 slicing (切片)的时候,和 python 的切片不一样的在于,会包括尾节点:

In [28]: obj [' b ':' c ']

Out [28]: b 1.0

c 2.0

dtype :float64

可以直接给选中的lable更改值

In [29]: obj [' b ':' c ]=5#包括标签 c

obj

Out [29]:a 0.0

b 5.0

c 5.0

d 3.0

dtype :float64

而对于 DataFrame , indexing 可以通过一个值或序列,选中一个以上的列:

In [30]: data = pd . DataFrame (nр. arange (16). reshape ((4,4)),

index =[' Ohio ',' Colorado ’,' Utah ’,' New York ’],

columns =[' one ',’ two ',’ three ',’ four ’])

Data

In [33]: data[' two ’]

Out [33]: Ohio 1

Colorado 5

Utah 9

New York 13

Name : two , dtype :int32

dataframe 的 indexing 有一些比较特别的方式。比如通过布尔数组:

行选择的语法格式 data [:2]是很方便的。给[]里传入一个 list 的话,可以选择列。

另一种方法是用 boolean dataframe

Selection with loc and iloc (用 loc 和 iloc 来选择)

对于 label - indexing on rows ,我们介绍特别的索引符, loc and iloc .这两个方法能通过 axis labels ( loc )或 integer ( iloc ),来选择行或列。

一个列子,选中一行多列 by label :

先创建一个Serious是0-4,索引是abcd。然后来取用一下索引,就是找某一个元素,Object括号里面放个B,找B这个元素按照索引查找。如果指定这个顺序那么第一行是0,第二行是1。那么也可以找到这条记录。也就是说索引、选择、过滤主要是地主功能。找第二行到第四行,不包括第四行,第二行第三行,和以前学过的列表或者是lables里面的切片基本上是相似功能。

选中行的话,在列表里面指定几个行的索引选中几行。选中里面的元素,第一个和第三个元素。前面用索引这里用他的相对位置,还可以做一些过滤做条件筛选。

Object小于二还可以用lable来进行切片。切片用lable就是用索引标签切片包括了结尾节点,如果用这个顺序它不包括二到四。可以直接给选中的这个lable更改值,比如B和C把它值改成五。对于数据框索引可以通过一个值或者一个序列。创建一个数据框,然后指定一列。它显示整个一列的内容。可以指定给定一个值也可以给定一组值,这一组值放在一起就是一个列表,也就是给定一个序列,同时可以筛选这列的索引。

数据框indexing还有一些比较特别的方式,可以通过布尔数组来操作,选第零条和第一条数据。这里面data是大于五的。最终的结果他执行完了是一个布尔值就是True和False,然后用这个True和False筛选。

行选择的语法格式冒号二很方便。中括号里面传一个list可以选择列。

另一种就是布尔的这个数据框,data小于五的话结果就是一个布尔的数据框的值就是布尔型的true和false。Data小于五的话,让它等于零把那个小于五的那些什么元素改成0。这都是数据框强大的操作。选择记录的时候可以用loc或者iloc来判断,loc一般适用于索引的标签的就是这种字符型的。

用Location来查找,它后面跟着的往往都是一个字符型的这样的这个索引或者标签。找到这一列里面的这两行。开始主要是数字的。还有Location找的是这样一个位置逗号,它的左边相当于是行,右边是列。

Index函数也能用于切片。不管他是单个的这个标签或者是一个列表的标签。它里面的筛选的条件就是data里面的Three是大于五。

思考题

pandas 中有很多用于选择和重新选择数据的方法,请查资料还有哪些?

注意:当设计 padnas 的时候,作者发现 frame [;, col 这样的语法是比较冗长的,因为这是会被经常用到的一个功能。作者把一些

indexing 的功能( lable or integer )集成在了 ix 这个方法上。实际中,因为这种 label 和 integer 都可以用的方式很方便,于是 pandas team 设计了 loc 和 ilco 来实现 label - based 和 integer - based indexing .

虽然 ix indexing 依然存在,但是已经过时,不推荐使用。

相关文章
|
22天前
|
索引 Python
Pandas学习笔记之时间处理
Pandas学习笔记之时间处理
|
22天前
|
索引 Python
Pandas学习笔记之Dataframe
Pandas学习笔记之Dataframe
|
22天前
|
索引 Python
Pandas学习笔记之Series
Pandas学习笔记之Series
|
22天前
|
SQL Serverless 数据库
Pandas学习笔记之常用功能
Pandas学习笔记之常用功能
|
机器学习/深度学习 决策智能 计算机视觉
Pandas库之DataFrame学习笔记
Pandas库之DataFrame学习笔记
154 0
|
SQL Java Go
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(1)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(1)
314 0
|
数据处理 索引 Python
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(4)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(4)
312 0
|
Java 数据处理 索引
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(3)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(3)
189 0
|
SQL 存储 Java
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(2)
【Python】【Numpy+Pandas数据处理·闯关】和鲸社区学习笔记day(2)
288 0
|
数据采集 开发者 索引
Pandas 数据预处理-中|学习笔记
快速学习 Pandas 数据预处理-中
Pandas 数据预处理-中|学习笔记