美文网首页
Pandas数据结构之Series对象的创建

Pandas数据结构之Series对象的创建

作者: 5f2a6061653d | 来源:发表于2018-09-24 00:33 被阅读133次

    Series是一种类似于NumPy中一维数组的对象,由一组数据(NumPy中各种数据类型的数据)与一组数据标签(索引)组成。NumPy中的Array、Pandas中的Series和Python中的List三者相近,最大的区别是List可含有不同数据类型的元素,而Array与Series中只允许存储相同数据类型的元素,正因如此,Array与Series可以更有效的使用内存,提高运算效率。

    创建Series对象

    Pandas中Series可通过三种方式创建,接下来详细讲解创建Series的三种方式。

    直接创建

    具体示例如下所示:

    In [1]: import numpy as np
    In [2]: import pandas as pd
    In [3]: se1 = pd.Series([1,2,3,4,5])
    In [4]: sv1 = se1.values
    In [5]: si1 = se1.index
    

    上述代码是直接创建Series对象,其中前两行是导入numpy和pandas;In [3]是直接采用pd.Series()函数创建Series,并将其赋值给变量se1;In [4]是访问se1的数据值,并将返回结果赋值给变量sv1;In [5]是访问se1中的索引值,并将返回结果赋值给变量si1。各变量的运行结果如下所示:

    In [6]: se1
    Out[6]:
    0 1
    1 2
    2 3
    3 4
    4 5
    dtype: int64
    In [7]: sv1
    Out[7]: array([1, 2, 3, 4, 5], dtype=int64)
    In [8]: si1
    Out[8]: RangeIndex(start=0, stop=5, step=1)
    

    从上述运行结果可看出,Series在未指定索引时,系统将使用默认索引(从0到N-1)。

    使用NumPy中arange()函数创建

    具体示例如下所示:

    In [9]: import numpy as np
    In [10]: import pandas as pd
    In [11]: se2 = pd.Series(np.arange(6))
    In [12]: se = pd.Series(np.arange(6),index=['a','b','c','d','e','f'])
    In [13]: sv2 = se2.values
    In [14]: si2 = se2.index
    In [15]: sv = se.values
    In [16]: si = se.index
    

    上述示例是通过NumPy中arange()函数创建Series对象,其中In [11]是创建Series,并将其赋值给变量se2,但未指定索引;In [12]是创建指定索引值的Series,并将其赋值给变量se;In [13]是访问se2的数据值,并将返回结果赋值给变量sv2;In [14]是访问se2的索引值,并将返回结果赋值给变量si2;In [15]是访问se的数据值,并将返回结果赋值给变量sv;In [16]是访问se的索引值,并将返回结果赋值给变量si。各变量的运行结果如下所示:

    In [17]: se2
    Out[17]:
    0 0
    1 1
    2 2
    3 3
    4 4
    5 5
    dtype: int32
    In [18]: sv2
    Out[18]: array([0, 1, 2, 3, 4, 5])
    In [19]: si2
    Out[19]: RangeIndex(start=0, stop=6, step=1)
    In [20]: se
    Out[20]:
    a 0
    b 1
    c 2
    d 3
    e 4
    f 5
    dtype: int32
    In [21]: sv
    Out[21]: array([0, 1, 2, 3, 4, 5])
    In [22]: si
    Out[22]: Index(['a', 'b', 'c', 'd', 'e', 'f'], dtype='object')
    

    从上述运行结果可看出,在使用NumPy中arange()函数创建Series时,可使用list来为Series中数据指定索引值。

    通过字典来创建

    具体示例如下所示:

    In [23]: import numpy as np
    In [24]: import pandas as pd
    In [25]: se3 = pd.Series({'a1':1,'b1':2,'c1':3,'a2':4,'b2':5,'c2':6})
    In [26]: sv3 = se3.values
    In [27]: si3 = se3.index
    

    上述代码是通过字典来创建Series对象,其中In [25]是创建Series,并将其赋值给变量se3,并对各元素数据指定了特定的索引值;In [26]是访问se3的数据值,并将返回结果赋值给变量sv3;In [27]是访问se3的索引值,并将返回结果赋值给变量si3。各变量的运行结果如下所示:

    In [28]: se3
    Out[28]:
    a1 1
    a2 4
    b1 2
    b2 5
    c1 3
    c2 6
    dtype: int64
    In [29]: sv3
    Out[29]: array([1, 4, 2, 5, 3, 6], dtype=int64)
    In [30]: si3
    Out[30]: Index(['a1', 'a2', 'b1', 'b2', 'c1', 'c2'], dtype='object')
    

    从上述运行结果可看出,在使用字典创建Series对象时,为元素数据指定的索引值会按index进行排序,而并不一定是创建时的顺序。

    相关文章

      网友评论

          本文标题:Pandas数据结构之Series对象的创建

          本文链接:https://www.haomeiwen.com/subject/fpjbgftx.html