pandas---Series基础使用

来源:互联网 发布:mac软件下载网站排名 编辑:程序博客网 时间:2024/05/19 03:25

导入pandas

import numpy as npimport pandas as pdfrom pandas import Series,DataFrame

pandas基本数据结构

  1. pandas中主要有两种数据结构,分别是:Series和DataFrame。
  2. Series:一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅有一组数据也可以产生简单的Series对象。注意:Series中的索引值是可以重复的。
  3. DataFrame:一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。

Series的创建方式

  1. 通过一维数组去创建

    arr = np.array([1,2,3,4])ser1 = Series(arr)ser1.values #获得值组成的一维数组ser1.index #获得索引值的描述,start,stop,stepser1.index=['a', 'b','c','d'] #更改索引值ser1['b'] # 索引形式获取某值ser1[1] # 下标形式获取某值
  2. 直接创建series数组

    ser2 = Series([99,100,98,10],index=['a', 'b','c','d'])ser22 = Series(data=[89,87,86],dtype=np.float64,index=[u'数学',u'语文',u'英语'])
  3. 通过字典形式创建

    dict1 = {'a':1,'b':2,'c':3,'d':4}ser3 = Series(dict1) # 字典的键对应ser的索引,字典的值对应ser的数据

注意:

     1. 索引可以创建时赋值,也可以后期赋值     2. 索引可以重复,下标不能重复     3. 字典本身键和值有对应关系,字典的键不能重复

Series值的获取

  1. Series值的获取主要有以下两种方式:
    1.通过方括号+索引的方式读取对应的索引的数据,有可能返回多条数据
    2. 通过方括号+下标的方式读取对应的下标值的数据,下标值取值的范围为:[0,len(Series.values)];另外下标值也可以是负数,表示从右往左获取数据
  2. Series获取多个值的方式乐视NumPy中的ndarray的切片操作,通过方括号+下标值/索引值+冒号(:)的形式来截取series对象中的一部分数据
    注意:
    在获取多个值的时候,
    通过下标形式加冒号获取,和切片一样是左闭右开区间,
    通过索引值加冒号获取,是获取一个完全闭合区间值

Series的运算

  1. NumPy中的数组运算,在Series中都保留了,均可以使用,并且Series进行数组运算的时候,索引与值之间的映射关系不会发生改变。
  2. 注意:其实在操作Series的时候,基本上可以把Series看出NumPy中的ndarray数组来进行操作。ndarray数组的绝大多数操作都可以应用到Series上。
ser3+1ser3-100ser3*100ser3/100ser3%100ser3//100np.abs(ser3) ## numpy中的通用函数在Series中是支持的

Series缺失值检测

  1. 定义新的索引值时,对于不存在的索引和存在的索引的缺省补齐操作

    ss = Series({'a':1,'b':2,'c':3,'d':4,'e':5})ss_index = ['a','bb','cc','d','e','f','g','h','i']ss_new = Series(ss,index=ss_index)
    a     1.0bb    NaNcc    NaNd     4.0e     5.0f     NaNg     NaNh     NaNi     NaNdtype: float64

    注意:自动对齐:键值关系不会发生改变。如果键无法对应,返回NaN值填充

  2. 对数组中的NaN值过滤

    ##过滤NaN值pd.isnull(ss_new) #返回布尔值的数组,NaN 返回Truepd.notnull(ss_new) #返回布尔值的数组 Not NaN 返回Truess_new[pd.notnull(ss_new)]
    注意:pandas中的isnull和notnull两个函数可以用于在Series中检测缺失值,这两个函数的返回值时一个布尔类型的Series
  3. 两个缺省补齐的数组相互操作时,按照索引对应关系进行操作

    s1 = Series([1,2,3],index=['a','b','c'])s2 = Series([10,20,30],index=['b','a','c','d'])s1 + s2

    注意:按照索引的形式找到与之相匹配的数据进行对应操作

Series别名

  1. name属性
s1.name=u'价格' ## 数据名称标签s1.index.name=u'产品' ## 索引名称标签

本文来自北风网的学习总结