首页
学习
活动
专区
工具
TVP
发布

Pandas基础(一)

如果对数据处理分析方面有兴趣的同学,应该都听说过pandas的大名了吧。pandas是以Numpy库作为基础进行设计的,并且为数据分析设计了两种数据结构。得益于这些特性,让pandas在数据分析方面占有独特的优势。

安装

使用PyPI安装,或者使用Anaconda,里面已经有了pandas。

pip install pandas

在python shell中输入

import pandas as pd

没有报错的话,就可以开始pandas之旅了。

pandas数据结构简介

pandas的核心为两大数据结构,数据分析相关的所有事物都是围绕着这两种结构进行的:

Series

DataFrame

Series这类数据结构用于存储一个序列这样的一维数据;而DataFrame作为更复杂的数据结构,则用于存储多维数据

虽然这些数据结构不能解决所有问题,但它们为大多数应用提供了有效和强大的工具。就简洁性而言,它们理解和使用起来都很简单。此外,很多更为复杂的数据结构都可以追溯到这两种结构。

然而,两者的奇特之处是将Index(索引)对象和标签整合到自己的结构之中。这一特点使得这两种数据结构具有很强的可操作性

Series对象

pandas库的Series对子那个用来表示一维数据结构,跟数组类似,但多了一些额外的功能,它的内部结构很简单,如下图:

1.声明Series对象

调用Series()构造函数,把要存放在Series对象中的数据以数组形式传入,就能创建一个Series对象

从输出可以看到,左侧Index是一列标签,右侧是标签对应的元素。

由于没有指定索引,pandas默认使用从0开始依次递增的数值作为标签。

然而,最好使用有意义的标签,用以区分和识别每一个元素,而不用烤炉元素插入到Series中的顺序。因此,调用构造函数时,就需要指定index选项,把存放有标签的数组赋给它,其中标签为字符串类型

如果想分别查看组成Series对象的两个数组,可以调用它的两个属性:index和values

2.选择内部元素

想要获取Series对象内部的元素,把它作为普通的Numpy数组,指定键或者指定索引位置处的标签即可。同样也可以获取多项,或者将元素标签放到数组中

3.为元素赋值

既然选取已经懂了,那赋值就很简单了。可以用所以或标签选取元素后进行赋值

4.使用Numpy定义Series对象

可以使用Numpy数组或现有Series对象来创建新的Series对象

5.Series运算和数学函数

适用于Numpy数组的运算符或其他数学函数,也适用于Series对象。至于运算符,直接用来编写算术表达式即可

6.NaN

NaN(Not a Number,非数值),数据结构中若字段为空或者不符合数字的定义时,用这个特定的值表示。

一般来讲,NaN值表示数据有问题,必须对其进行出来了,尤其是在数据分析时。从某些数据源抽取数据时遇到问题,甚至是数据源确实数据,往往就会产生这类数据。

尽管NaN值是在数据遇到问题才产生,但在pandas中是可以定义这种类型的数据,并把它添加到Series中的。创建数据结构时,可为数组中的元素缺失项输入np.NaN

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

7.Series用作字典

可以把Series对象当做字典对象来用。定义Series对象时,就可以利用这一相似性

上面代码中,索引数组用字典的键来填充,每一个索引对应的元素用字典的值来填充。如遇缺失值,pandas会自动添加NaN

8.算术对齐

Series对象之间也是可以进行运算的,甚至标签也可以参与运算。Series这种数据结构在运算时有一大有点,它能够通过识别标签对齐不一致的数据。

- The End -

Python绿洲

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190104G0BFEC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券