Pandas(一)

您所在的位置:网站首页 series是二维的数据结构吗 Pandas(一)

Pandas(一)

#Pandas(一)| 来源: 网络整理| 查看: 265

目录

Series结构

创建Series对象

访问Series数据

Series常用属性

Series常用方法

Series结构

Series 结构,也称 Series 序列,是 Pandas 常用的数据结构之一,它是一种类似于一维数组的结构,由一组数据值(value)和一组标签组成,其中标签与数据值之间是一一对应的关系。 Series 可以保存任何数据类型,比如整数、字符串、浮点数、Python 对象等,它的标签默认为整数,从 0 开始依次递增。Series 的结构图,如下所示:

通过标签我们可以更加直观地查看数据所在的索引位置。

创建Series对象

Pandas 使用 Series()  函数来创建 Series 对象,通过这个对象可以调用相应的方法和属性,从而达到处理数据的目的:

import pandas as pds=pd.Series( data, index, dtype, copy)

参数说明如下所示:

参数名称描述data输入的数据,可以是列表、常量、ndarray 数组等。index索引值必须是惟一的,如果没有传递索引,则默认为 np.arrange(n)。dtypedtype表示数据类型,如果没有提供,则会自动判断得出。copy表示对 data 进行拷贝,默认为 False。

可以使用数组、字典、标量值或者 Python 对象来创建 Series 对象。下面展示了创建 Series 对象的不同方法:

1) 创建一个空Series对象

import pandas as pd #输出数据为空 s = pd.Series() print(s) 输出结果如下: Series([], dtype: float64)

2) ndarray创建Series对象

ndarray 是 NumPy 中的数组类型,当 data 是 ndarry 时,传递的索引必须具有与数组相同的长度。假如没有给 index 参数传参,在默认情况下,索引值将使用是 range(n) 生成,其中 n 代表数组长度,如下所示:

import pandas as pd import numpy as np # 使用默认索引,创建 Series 序列对象,这种设置方式被称为“隐式索引”。 data = np.array(['a','b','c','d']) s = pd.Series(data) print (s) 输出结果如下: 0 a 1 b 2 c 3 d dtype: object # 可以使用“显式索引”的方法定义索引标签,自定义索引标签(即显示索引) s = pd.Series(data,index=[100,101,102,103]) print(s) 输出结果: 100 a 101 b 102 c 103 d dtype: object

3) dict创建Series对象

您可以把 dict 作为输入数据。如果没有传入索引时会按照字典的键来构造索引;反之,当传递了索引时需要将索引标签与字典中的值一一对应。 下面两组示例分别对上述两种情况做了演示。

import pandas as pd import numpy as np # 示例1,没有传递索引时: data = {'a' : 0., 'b' : 1., 'c' : 2.} s = pd.Series(data) print(s) 输出结果: a 0.0 b 1.0 c 2.0 dtype: float64 # 示例 2,为index参数传递索引时: s = pd.Series(data,index=['b','c','d','a']) print(s) 输出结果: b 1.0 c 2.0 d NaN # 当传递的索引值无法找到与其对应的值时,使用 NaN(非数字)填充。 a 0.0 dtype: float64

4) 标量创建Series对象

# 如果 data 是标量值,则必须提供索引,示例如下: import pandas as pd import numpy as np s = pd.Series(5, index=[0, 1, 2, 3]) print(s) 输出如下: 0 5 1 5 2 5 3 5 dtype: int64

标量值按照 index 的数量进行重复,并与其一一对应。

访问Series数据

上述讲解了创建 Series 对象的多种方式,那么我们应该如何访问 Series 序列中元素呢?分为两种方式,一种是位置索引访问;另一种是索引标签访问。

1) 位置索引访问

这种访问方式与 ndarray 和 list 相同,使用元素自身的下标进行访问。我们知道数组的索引计数从 0 开始,这表示第一个元素存储在第 0 个索引位置上,以此类推,就可以获得 Series 序列中的每个元素。下面看一组简单的示例:

import pandas as pd s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) # 通过位置和标签下标访问 print(s[0]) #位置下标 print(s['a']) #标签下标 输出结果: 1 1 # 使用索引标签访问多个元素值 print(s[['a','c','d']]) 输出结果: a 1 c 3 d 4 dtype: int64 # 通过切片的方式访问 Series 序列中的数据,示例如下: print(s[:3]) 输出结果: a 1 b 2 c 3 dtype: int64 Series常用属性

下面介绍 Series 的常用属性和方法。在下表列出了 Series 对象的常用属性。

名称属性axes以列表的形式返回所有行索引标签。dtype返回对象的数据类型。empty返回一个空的 Series 对象。ndim返回输入数据的维数。size返回输入数据的元素数量。values以 ndarray 的形式返回 Series 对象。index返回一个RangeIndex对象,用来描述索引的取值范围。

 示例如下:

import pandas as pd import numpy as np s = pd.Series(np.random.randn(5)) # axes print(s.axes) [RangeIndex(start=0, stop=5, step=1)] # dtype print(s.dtype) float64 # empty print(s.empty) False # ndim print(s.ndim) 1 # 因为其为一维数组,其始终返回1 # size print(s.size) 5 # values print(s.values) [-0.50210028 0.69619407 -0.98206327 0.41642976 -1.38451433] # index print(s.index) RangeIndex(start=0, stop=5, step=1) # 隐式索引 Series常用方法

1) head()&tail()查看数据

如果想要查看 Series 的某一部分数据,可以使用 head() 或者 tail() 方法。其中 head() 返回前 n 行数据,默认显示前 5 行数据。

import pandas as pd import numpy as np s = pd.Series(np.random.randn(5)) #返回前三行数据 print(s.head(3)) head(3)输出: dtype: float64 0 1.249679 1 0.636487 2 -0.987621 dtype: float64 # tail() 返回的是后 n 行数据,默认为后 5 行,输出后两行数据 print (s.tail(2)) 输出后两行数据: dtype: float64 2 -0.719175 3 -0.035178 dtype: float64

2) isnull()&nonull()检测缺失值

isnull() 和 nonull() 用于检测 Series 中的缺失值。所谓缺失值,顾名思义就是值不存在、丢失、缺少。

isnull():如果为值不存在或者缺失,则返回 True。notnull():如果值不存在或者缺失,则返回 False。

针对数据丢失的现象,可以使用相应的方法对缺失值进行处理,比如均值插值、数据补齐等方法。上述两个方法可以检测是否存在缺失值。示例如下:

import pandas as pd #None代表缺失数据 s=pd.Series([1,2,5,None]) print(pd.isnull(s)) #是空值返回True 输出结果: 0 False 1 False 2 False 3 True dtype: bool print(pd.notnull(s)) #空值返回False notnull(): 0 True 1 True 2 True 3 False dtype: bool

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3