上一节,我们已经安装了numpy,基于numpy,我们继续来看下pandas

pandas用于做数据分析与数据挖掘

pandas安装

使用命令

pip install pandas

出现上图表示安装成功。

pandas又两大数据结构,数据分析相关的都围绕着这两种结构进行:

①Series

②DataFrame

Series用于存储序列这样的一维数据,DataFrame用于存储多维数据

Series对象

主要有2个相关联的数组组合在一起:①主元素数组 ②Index数组

index value
0 -12
1 5
2 7
3 2

1.声明Series对象

从上图可以看出,左侧的是index,右侧的是标签对应的元素

若不指定标签,默认的标签是从0开始的的递增数值标签,最好使用有意义的便签,用以区分和识别每个元素

分别查看组成Series的两个数组,可以像下面一样调用它的两个属性:index(索引)和values(元素)

2.选择内部元素

或者直接使用index访问

选择多个元素时

3.元素赋值

既然知道如何选取单个元素,那么元素赋值就不言而喻了

使用index:

4.用NumPy数组或其他Series对象定义新的Series对象

4.1使用NumPy定义

4.2使用原有Series对象定义

然后,这样做的时候千万要小心,新的Series中的元素是引用的NumPy数组或原有Series对象中的,并不是其副本。简而言之,如果改变原NumPy数组中的值,那么新的Series中的值也会发生改变。

5.筛选元素

获取s对象中所有大于8的元素

6.Series对象运算和数学函数

数学中的加减乘除同样适用Series

7.Series对象的组成元素

Series对象往往包含重复的元素,你很可能想知道里边包含哪些元素,统计元素重复出现的次数或者判断一个元素是否在Series中

接下来,还可以统计重复元素在在Series中出现的次数

isin()函数用来判断所属关系,也就是判断给定的一列元素是否包含在数据结构之中,isin()函数返回布尔值

8.NaN

我们在做运算的时候,如果出现下面这种情况,对负数求对数会怎么样呢?

NaN(not a Nmber,非数值)

当数据结构中若字段为空或者不符合数字的定义时,用这个特定的来表示

创建数据结构时,可以为缺失的项输入np.NaN

isnull()和notnull()函数用来识别没有对应元素的索引时非常好用

上面两个函数返回两个由布尔值组成的Series对象,其元素时True或者False取决于原Series对象是否为NaN.如果是NaN,isnull()函数值返回为True,反之。

9.Series用作字典

在上述例子中,索引数组用字典的键来填充,每个索引所对应的元素为用作索引的键在字典中对应的值。如遇缺失值,pandas就会为添加NaN

10.Series对象之间的运算

根据上图我们可以看出,Series对象之间的运算

只对标签相同的元素求和

DataFrame对象

DataFrame这种列表式数据结构跟工作表(最常见的是Excle工作表)极为相似,其设计初衷是将Series的使用场景由一维扩展到二维。

index first_name last_name sex
0 Tom Green Man
1 Json Smith Man
2 Alice Smith Woman

DataFrame有两个索引组,第一个数组与行相关,第二个数组与列相关。

1.定义DataFrame对象

新建DataFrame对象的常用方法是传递一个dict对象给DataFrame()构造函数。

如果用来创建DataFrame对象的dict对象包含一些用不到的数据,你可以只选择自己感兴趣的东西。在DataFrame构造函数中,用column选项指定需要的列即可。

DataFrame对象跟Series一样,如果Index数组没有明确指定标签,pandas也会为其添加一列从0开始的数值作为索引。如果要指定索引,那么只需要把标签放在数组中,赋给index选项

既然有index,columns选项,那么就可以使用新方法定义DataFrame

例如:使用np.arange(16).reshape((4,4))生成一个4*4型,包含数字0~15的矩阵

2.选取元素

2.1获取列名

如果想知道DataFrame对象所有列的名称,在它上面调用columns属性即可

2.2获取索引

类似的,获取索引列表,调用index属性即可

2.3获取元素

获取存储在数据结构中的元素

2.4获取指定列

选择一列

另一种是用列名称作为DataFrame实例的属性

2.5获取行

至于DataFrame中的行,用ix属性和行的索引值就能获取

同时,也可以使用索引来选取行,第一个索引作为起始,第二个作为结束。

2.6获取具体的元素

如果要获取存储在DataFrame中一个具体的元素,需要指定元素所在的列名称与行名称

3.赋值

3.1添加二级标签

根据index与columns属性即可对DataFrame进行赋值

使用name属性为二级结构指定标签

3.2添加新列

我们从上面可以看出,新增的一列全部都是America,那么我们加入需要将数组更新到这一列怎么做呢

3.2为DataFrame的各列赋一个Series对象也可以创建DataFrame,例如使用np.arange()函数生成一个递增序列

4.元素的所属关系

isin()函数在DataFrame中也是适用的

使用上述的返回结果作为条件,将得到一个新的DataFrame,其中只包含满足条件的元素

5.删除一列

使用del删除

6.筛选

7.用嵌套字典生成DataFrame对象

当不存在对应元素时候,使用NaN填补

8.DataFrame转置

【Python 数据分析】pandas模块的更多相关文章

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

    pandas 入门 简介 pandas 组成 = 数据面板 + 数据分析工具 poandas 把数组分为3类 一维矩阵:Series 把ndarray强大在可以存储任意数据类型可以专门处理时间数据 二 ...

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

    重点方法 分组:groupby('列名') groupby(['列1'],['列2'........]) 分组步骤: (spiltting)拆分 按照一些规则将数据分为不同的组 (Applying)申 ...

  3. Python数据分析--Pandas知识点(二)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...

  4. Python数据分析--Pandas知识点(三)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...

  5. python 数据分析--pandas

    接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利用pandas的DataFrames进行统计分析 ...

  6. 使用Python的pandas模块、mplfinance模块、matplotlib模块绘制K线图

    目录 pandas模块.mplfinance模块和matplotlib模块介绍 pandas模块 mplfinance模块和matplotlib模块 安装mplfinance模块.pandas模块和m ...

  7. Python数据分析-Pandas(Series与DataFrame)

    Pandas介绍: pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的. Pandas的主要功能: 1)具备对其功能的数据结构DataFrame.Series 2)集成时间序 ...

  8. python之pandas模块

    一.pandas模块是基于Numpy模块的,pandas的主要数据结构是Series和DadaFrame,下面引入这样的约定: from pandas import Series,DataFrame ...

  9. Python中pandas模块解析

    Pandas基于两种数据类型: series 与 dataframe . 1.Series 一个series是一个一维的数据类型,其中每一个元素都有一个标签.类似于Numpy中元素带标签的数组.其中, ...

  10. Python数据分析Pandas库方法简介

    Pandas 入门 Pandas简介 背景:pandas是一个Python包,提供快速,灵活和富有表现力的数据结构,旨在使“关系”或“标记”数据的使用既简单又直观.它旨在成为在Python中进行实际, ...

随机推荐

  1. iptables 执行清除命令 iptables -F 要非常小心

    使用 /sbin/iptables -F 要小心,搞不好,你就马上同服务器断开连接了 以下是来自 http://wiki.ubuntu.org.cn/IptablesHowTo 上的说明 可以通过/s ...

  2. Qt笔记——绘图(QBitmap,QPixmap,QImage,QPicture)

    QPainter绘图 重写绘图事件,虚函数 如果窗口绘图,必须放在绘图事件里实现 绘图事件内部自动调用,窗口需要重绘的时候,状态改变 绘图设备(QPixmap,QImage,QBitmap,QPict ...

  3. typescript 定义全局变量以及扩展原生js对象

    使用“declare global”操作即可. 项目根目录下新建myDeclareFile.d.ts declare global { interface Navigator { mediaSessi ...

  4. django实现动态菜单的方式

    1.model from django.contrib.auth.models import User #django自带 class UserProfile(models.Model): " ...

  5. 6、Django实战第6天:用户登录

    今天开始,我们需要来写后台逻辑了.... 后台逻辑代码都是编写在views.py文件里面,今天要完成的登录功能,因此来编辑users.views.py 这里我们根据请求方法来判断分为2种情况,网页默认 ...

  6. 【分块答案】【最小生成树】【kruscal】bzoj1196 [HNOI2006]公路修建问题

    二分(分块)枚举 边权上限.用kruscal判可行性. #include<cstdio> #include<algorithm> #include<cstring> ...

  7. [CF160D]Edges in MST

    [CF160D]Edges in MST 题目大意: 一个\(n(n\le10^5)\)个点,\(m(m\le10^5)\)条边的连通图.对于图中的每条边,判断它与该图最小生成树的关系: 在该图所有的 ...

  8. 使用MultipleInputs和MultipleOutputs

    还是计算矩阵的乘积,待计算的表达式如下: S=F*[B+mu(u+s+b+d)] 其中,矩阵B.u.s.d分别存放在名称对应的SequenceFile文件中. 1)我们想分别读取这些文件(放在不同的文 ...

  9. IOS之Block的应用-textFeild的回调应用

    Block的一点优点为可以省略回调函数,简化代码今天我就应用了以下. 以下是代码片段. _testTextField1=[[MyTextField alloc] init]; [self.view a ...

  10. TQ2440学习笔记——Linux上I2C驱动的两种实现方法(1)

    作者:彭东林 邮箱:pengdonglin137@163.com 内核版本:Linux-3.14 u-boot版本:U-Boot 2015.04 硬件:TQ2440 (NorFlash:2M   Na ...