更新时间:2023-09-13 来源:黑马程序员 浏览量:
pandas中提供了两个比较重要的数据结构,即Series和DataFrame,分别用于处理一维数据和二维数据。本节将针对pandas的数据结构进行详细的介绍。
Series是由 pandas 库提供的一个类,Series类对象的结构类似于一维数组,主要由数据和索引两部分组成,其中数据可以是任意类型,如整数、字符串、浮点数等。Series类对象的结构示意如图所示。
Series类对象的索引位于左侧,数据位于右侧。需要说明的是,Series类对象的索引样式比较丰富,默认是自动生成的整数索引(从0开始递增),也可以是自定义的标签索引(由自定义的标签构成的索引)、时间索引(由日期时间构成的索引)等。
通过Series类的构造方法可以创建一维数据。Series类构造方法的语法格式如下。
pandas.Series (data=None,index=None,dtype=None,nane=None,copy=False, fastpath=False)
以上构造方法中常用参数的含义如下。
· data:表示传入的数据,可以是ndarry、列表、字典等。
· index:表示传入的索引,必须是唯一值,且与数据的长度相同。若没有传入索引,则创建的Series类对象会自动生成0~N的整数索引。
· dtype:表示数据的类型。若未指定数据类型,pandas会根据传入的数据自动推断数据类型。
· name:表示Series类对象的名称。
· copy:表示是否复制数据,默认为Fakse。
接下来,通过在Series0方法中传人列表的方式创建Series类对象,代码如下。
import pandas an pd # 导入pandan库 # 根据列表创建Series类对象 ser_obj = pd.Series(['Python','Java','PHP']) print(ser_cbj) 0 Python 1 Java 2 PHP dtype: object
从输出结果可以看出,Series类对象的索引为0~2,即自动生成的整数索引;数据由上至下依次为列表的各个元素,其类型为object,该类型是根据列表中元素的类型推断出来的。
在使用Series0方法创建对象时,可以传人index参数指定自定义的索引,代码如下。
In []: # 导入pandaa库 import pandas as pd # 创建Series类对象,同时为该对象指定索引 ser_obj = pd.Series(['Python', 'Java', 'PHP'], index = ['one', 'two', 'three']} print(ser_obj) one Python two Java three PHP dtype: cbject
从输出结果可以看出,Series类对象的索引不再是整数索引,而是由 index参数指定的标签索引。
使用Series()方法创建对象时可以传入字典,此时字典的键将作为Series类对象的索引。字典的值将作为Series类对象的数据,代码如下。
In []: data =('one':'Python', 'two': 'Java','three': 'PHP') ser_cbj2 = pd.Series(data) # 根据字典创建Series类对象 print(ser cbj2) one Python two Java three PHP dtype: object