Pandas 学习 第2篇:pandas 的 Series

pandas是基于NumPy构建的模块,含有使数据分析更快更简单的操作工具和数据结构,最常用的数据结构是:序列Series和数据框DataFrame。

序列是具有单一类型的一维数组,表示多行一列的数据结构,由于一列中的元素必须是相同的,因此,序列中的数据具有相同的数据类型;行具有索引和行标签属性,每行都有一个索引和行标签。而DataFrame类似于二维的关系表,每列的数据类型是相同的。

一,pandas的数据类型

用dtype属性来显示元素的数据类型,pandas主要有以下几种dtype:

  • object:表示字符串类型
  • int:表示整数类型
  • float:表示浮点数类型
  • datetime:表示时间类型
  • bool:表示布尔类型
  • category:分类

二,创建序列

序列(Series)是由一组有序的数据以及与之相关的索引组成,能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签和下标统称为索引,可以通过索引来访问Series对象中的元素。

序列的构造函数定义是:

pandas.Series( data, index, dtype, copy)

构造函数的参数:

  • data:数据可以是ndarray、list或字典
  • index:设置索引标签,索引标签必须是唯一的,与数据的长度相同;如果没有传递索引标签,那么默认值是 np.arange(n)
  • dtype:用于数据类型,如果没有设置,那么将推断数据类型
  • copy:复制数据,默认值是false

索引的下标是自动生成的,从0开始,加1递增。

1,创建空的序列

s=pd.Series()

2,使用ndarray创建序列

创建ndarray的一维数组,构造序列,序列包含两部分:索引和序列值,如下所示

>>> import pandas as pd
>>> import numpy as np
>>> data=np.array([‘a‘,‘b‘])
>>> pd.Series(data)
0    a
1    b
dtype: object
>>> 

这里没有传递任何索引,默认情况下,pandas分配了从 0 到  len(data)-1  的索引。也可以在构造函数中传递自定义的索引列表,如下所示:

>>> pd.Series(data,index=[101,102])
101    a
102    b
dtype: object

3,从列表构造序列

仅使用一组数据就可以产生最简单的Series,此时索引是从0依次递增的整数:

s=pd.Series([4,7,-5,3])

可以通过Series对象的values和index属性查看序列的值和索引:

s.values
## array([4,7,-5,3])
s.index
## Int64Index([0,1,2,3])

也可以使用自定义的列表来创建序列:

s=pd.Series([4,7,-5,3],index=[‘d‘,‘b‘,‘a‘,‘c‘])

4,从字典构造序列

可以直接通过字典来创建Series,其中,字典的key作为序列的索引,字典的value作为序列值:

>>> sdata = {‘b‘: 12, ‘a‘: 13, ‘d‘: 14, ‘c‘: 10}
>>> sd=pd.Series(sdata)
b    12
a    13
d    14
c    10
dtype: int64

三,访问序列的元素

序列元素的访问,可以通过索引,下标,索引是在构造函数中通过index参数传递或构造的,而下标是默认生成的,第一个元素的下标值是0,依次加1递增。

1,通过下标来访问序列

下表从0开始,依次加1递增,访问序列的第一个元素:

>>> sd[0]
12

访问序列的前三个元素,下表为负,表示从方向来访问:

sd[:3]sd[-3:]

2,通过索引标签来访问序列的元素

通过索引来访问序列的元素,并可以修改序列元素的值

sd[‘a‘]=4

也可以传递多个索引标签:

>>> sd[[‘a‘,‘b‘]]
a    13
b    12

四,序列的属性

序列对象包含的属性:

  • array:把序列转换为数组
  • dtype:序列元素的数据类型
  • hasnan:序列是否包含nan
  • axes:序列的轴标签
  • index:序列的索引标签
  • values:序列的值属性
  • is_unique:序列的元素是否是唯一的
  • size:序列的元素数量
  • shape:序列的形状,表示各个维度的数量
  • ndim:维度的数量

序列对象还能通过属性来访问序列的元素值。

1,at和iat属性,用于访问单个序列元素值

at属性表示的是索引标签和元素值对,通过索引标签访问单个序列值

>>> sd.at[‘a‘]
13

iat属性表示的下表和元素值对,通过下表访问序列的单个元素值:

>>> sd.iat[1]
13

2,loc和iloc,通过序列的位置来访问元素

iloc:纯粹基于整数位置的索引,用于按位置选择序列元素

  • 单个位置索引,比如sd.iloc[1]
  • 位置索引的列表,比如 sd.iloc[[0,1]]
  • 整数序列,比如,sd.iloc[0:2]
  • 布尔值数组,sd.iloc[[True, False, True, False]]

loc:通过索引标签和布尔值数组来选择序列的元素

举个例子,通过整数序列来选择序列的元素:

>>> sd.iloc[0:2]
b    12
a    13

举个例子,通过索引的标签来选择序列的元素:

>>> sd.loc[[‘a‘,‘b‘]]
a    13
b    12
dtype: int64

3,ix属性

ix属性是最首要的标签-位置的索引器,具有整数位置的回退,注意,不推荐使用ix索引器。

  • .ix []支持基于整数和标签混合的访问,它主要基于标签,但将回退到整数位置访问,除非相应的轴是整数类型。
  • .ix是最常用的索引器,它将支持.loc和.iloc中的任何输入。
  • 但是,当轴基于整数时,仅支持基于标签的访问而非位置访问。 因此,在这种情况下,通常最好是明确的并使用.iloc或.loc。

举个例子,ix索引器既支持整数,也支持标签的访问。

>>> sd.ix[1]
>>> sd.ix[‘a‘]

五,序列的函数

通过序列对象直接调用函数对数据进行处理

1,聚合

调用函数对序列的元素进行聚合

agg(self, func[, axis])
aggregate(self, func[, axis])

2,对序列元素调用函数

apply(self, func[, convert_dtype, args])

参考文档:

pandas Series

原文地址:https://www.cnblogs.com/ljhdo/p/11514685.html

时间: 2024-09-30 02:55:59

Pandas 学习 第2篇:pandas 的 Series的相关文章

pandas 学习 第11篇:DataFrame-数据处理(分组、聚合、窗口、相关、统计)

数据处理的目的是为了数据分析,下面分享常用的数据分析中会用到的函数. 一,分组和聚合 groupby用于对数据分组,分组之后可以直接调用聚合函数求值:agg()函数把分组和调用聚合函数集成到一个函数来实现: DataFrame.groupby(self, by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs) DataFrame

pandas 学习 第1篇:pandas基础

pandas是基于NumPy构建的模块,含有使数据分析更快更简单的操作工具和数据结构,包含序列Series和数据框DataFrame两种最主要数据结构. 一,pandas最重要的两种数据类型 数据框(DataFrame)类似于二维的关系表,每列的数据类型是相同的,列与列的数据类型可以不同,也可以相同.数据框的结构是行和列,列有列名,行有行索引,行索引还可以设置标签. 序列(Series)可以认为是二维表中的一列,因此,可以把数据框的一列转换为序列.在pandas中,序列是具有单一类型的一维数组,

pandas 学习 第4篇:序列的处理(应用、聚合、转换、映射、分组、滚动、扩展、指数加权移动平均)

序列内置一些函数,用于循环对序列的元素执行操作. 一,应用函数 对序列的各个原始应用函数: Series.apply(self, func, convert_dtype=True, args=(), **kwds) 参数注释: func:应用的函数,可以是自定义的函数,或NumPy函数 convert_dtype:默认值是True,尝试把func应用的结果转换为更好的数据类型,如果设置为False,把结果转换为dtype=object. args:元组,在序列值之后,传递给func的位置参数(p

pandas 学习笔记

读者只需浏览一下本文的目录结构,我相信就已经掌握了1到2成的 pandas 知识. 本文的目的是建立一个大概的知识结构 在数据挖掘python阅读源码时,断断续续查阅了些 pandas 资料,并在源码中大致感受到了 pandas 在数据清理方面的方便性. 先将自己查阅的资料结合实际应用中常用到的方式,以学习笔记的形式整理出来.不会涉及到 pandas 的所有方面,细节知识还需自行查阅官方文档. 数据结构 Series: 一维数组,与Numpy中的一维array类似.二者与Python基本的数据结

<转>pandas学习

1.Pandas 基本介绍 Numpy 和 Pandas 有什么不同? 如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式.Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单. pandas基本功能和使用方法有哪些? 要使用pandas,首先需要了解他主要两个数据结构:Series和DataFrame. Series的 创建: import pandas as pd import numpy as

Python数据分析之pandas学习

Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利用pandas的DataFrames进行统计分析5.利用pandas实现SQL操作6.利用pandas进行缺失值的处理7.利用pandas实现Excel的数据透视表功能8.多层索引的使用 一.数据结构介绍 在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame.Ser

pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)

pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 describe 针对Series或DataFrame列计算统计 min/max/sum 计算最小值 最大值 总和 argmin argmax 计算能够获取到最小值和最大值的索引位置(整数) idxmin idxmax 计算能够获取到最小值和最大值的索引值 quantile 计算样本的分位数(0到1)

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

Python学习教程(Python学习路线):Pandas库基础分析-详解时间序列的处理

Python学习教程(Python学习路线):Pandas库基础分析-详解时间序列的处理 在使用Python进行数据分析时,经常会遇到时间日期格式处理和转换,特别是分析和挖掘与时间相关的数据,比如量化交易就是从历史数据中寻找股价的变化规律.Python中自带的处理时间的模块有datetime,NumPy库也提供了相应的方法,Pandas作为Python环境下的数据分析库,更是提供了强大的日期数据处理的功能,是处理时间序列的利器. 1.生成日期序列 主要提供pd.data_range()和pd.p