Python | 您所在的位置:网站首页 › pandas只支持series数据结构 › Python |
Python——pandas模块—Series数据结构
Python——pandas模块—Series数据结构
pandasSeries创建Series没有指定索引列时,自动创建:0~~(N-1)(N:数组长度)的整数型索引指定索引列index(数字,字符串)这点与数组不同,数组中的元素类型要相同使用列表、数组构建Series通过字典/字典对象的方式创建Series
访问SreiesSeries.head()从前访问Series.tail()从后访问Sreies.index查看索引列Sreies.values查看数据列Series.dtype查看数据类型
Series的使用使用一个Series创建另一个Series缺失值检测非缺失值检测练习
查找Series(索引)[索引名][索引位置下标]
切片操作索引位置切片 [索引位置:索引位置:步长]索引值切片[索引值:索引值]
索引列重新赋值Series的运算一个Series与数值做运算两个Series运算
总结:
Python——pandas模块—Series数据结构
pandas
Numpy更适合处理统一的数值数组数据 pandas是专门为处理表格和混杂数据设计的 panda有两种数据结构: SeriesDataFrame Series Series数据类型能够保存 任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组轴标签统称为索引,每个元素都带有一个索引Series表现形式:索引在左边,值在右边可以通过Series的属性: index ——获取——索引列 values——获取——数据列可以这样想:每一个元素可以类似的看成一个字典,整个Series可以类似的看成一个二维数组 如图: 自动添加整数索引 0~~4(数组长度为4) 同样,还是自动添加索引列 不同的是,在字典里的key不可重复 但是在Series中index是可以重复的 #创建一个字典对象方式 dic = dict(zip(lis,array)) #zip打包zip(lis,array)操作之后形成一个元组列表 Series_dict = pd.Series(dic) print('通过字典对象创建的Series对象:') print(Series_dict) #直接传入字典方式 Series_dict2 = pd.Series({'a':1,'b':2,'c':3,'d':4}) print('直接传入字典的方式创建的Series') print(Series_dict2)再来看一个字典构建Series实例 dic = {'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000} a = pd.Series(dic) print(a)默认访问前5个元素 print(a.head(2)) Series.tail()从后访问默认访问后5个元素 print(a.tail(2)) Sreies.index查看索引列 print(a.index) Sreies.values查看数据列 print(a.values)上面我们创建了一个Series对象a 接下来,我们用a创建另一个Series对象 '''字典构建Serise实例''' dic = {'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000} a = pd.Series(dic) b = pd.Series(a,index=['California','Ohio','Oregon','Texas']) print('通过一个对象构建的Series对象:') print(b)创建的时候,新的对象的索引列为传入的index 样板对象有的index直接取其value 样板对象没有的index,添加进去,value值设为缺失值NaN 返回的是一个 数据列为bool型的对象 True:缺失值 False:不是缺失值 #缺失值检测 print('缺失值检测') print(pd.isnull(b))生成一个和sd长度相同的随机数Series sd = pd.Series([1,2,3,4,5]) sd = pd.Series([1,2,4,1,2]) #生成一个与sd长度相同的随机数数列 a = np.random.random(len(sd)) #用数组创建Series对象 s = pd.Series(a) print('创建的Series对象:') print(s)当有相同索引名时,返回多条数据 再次验证了,Series对象中索引的名字不唯一,可以重复出现 #Series[索引名] import pandas as pd obj = pd.Series([1,2,3,4],index=['d','f','d','c']) print('创建的Series:') print(obj) obj2 = obj['d'] print('查找索引为d的数据:') print(obj2)下标的取值范围:[o,len(Series.values)] 可以是: 整数:正取,从0开始 负数:倒取,从-1开始 # [索引位置下标] import pandas as pd obj = pd.Series([1,2,3,4],index=['d','f','d','c']) print('索引1的数据:',obj[1]) print('索引最后一个的数据:',obj[-1])类似Numpy的ndarray切片操作 不同的是,Series切片中的数据除了索引号,还可以是索引值 注意: 当使用索引值进行切片时,索引列里的索引值要唯一,除非切片的起始值为唯一索引 索引位置切片 [索引位置:索引位置:步长] #索引位置切片 import pandas as pd obj = pd.Series([1,2,3,4],index=['d','f','d','c']) print(obj[1:3])当使用索引值进行切片时,索引列里的索引值要唯一,除非切片的起始值为唯一索引 #索引位置切片 import pandas as pd obj = pd.Series([1,2,3,4],index=['d','f','d','c']) print(obj['f':'c']
此方法只能对index进行修改,不可以对values进行修改 Series保留了Numpy中的数组运算,均可以使用 Series进行数组运算的时候,索引与值之间的映射关系不会发生改变 一个Series与数值做运算 # Series运算 import pandas as pd obj = pd.Series([100,200,300,400],index = ['one','two','three','four']) print('初始数组:') print(obj) print('+1数组:') print(obj+1) print('-2初始数组:') print(obj-2) print('*3初始数组:') print(obj*3) print('/2初始数组:') print(obj/2)
两个对应元素进行+ - * /,对方没有的返回index,且value=NaN import pandas as pd obj = pd.Series([100,200,300,400],index = ['one','two','three','four']) obj2 = pd.Series([1,2,3],index=['a','b','one']) print(obj+obj2)
对Series对象进行操作时,基本上可以看成对Numpy中的ndarray进行操作 ndarray中的绝大多数操作都可以用在Series上 |
CopyRight 2018-2019 实验室设备网 版权所有 |