【python】pandas库Serie

发布时间:2019-09-24 08:29:45编辑:auto阅读(1849)

    Series类型由一组数据及与之相关的数据索引组成,Series类型可以由如下类型创建:

    • Python列表,index与列表元素个数一致
    In [1]: import pandas as pd
    
    In [2]: list_a = [2,4,5,6]
    
    In [3]: pd.Series(list_a)
    Out[3]:
    0    2
    1    4
    2    5
    3    6
    dtype: int64
    • 标量值,index表达Series类型的尺寸
    In [4]: pd.Series(1,index = [1,2,3])
    Out[4]:
    1    1
    2    1
    3    1
    dtype: int64
    • Python字典,键值对中的“键”是索引,index从字典中进行选择操作
    In [5]: pd.Series({'a':1,'b':3})
    Out[5]:
    a    1
    b    3
    dtype: int64
    #如果定义的index在原字典中已经存在,那么该索引会一直对应原字典的值,如果index对应不到原字典的值,则会返回NaN
    In [11]: pd.Series({'a':1,'b':3},index = ['b','a','c'])
    Out[11]:
    b    3.0
    a    1.0
    c    NaN
    dtype: float64
    • ndarray,索引和数据都可以通过ndarray类型创建
    In [9]: list_b = np.arange(6)
    
    In [10]: pd.Series(list_b)
    Out[10]:
    0    0
    1    1
    2    2
    3    3
    4    4
    5    5
    dtype: int32
    • 其他函数,range()函数等
    In [12]: pd.Series(range(3))
    Out[12]:
    0    0
    1    1
    2    2
    dtype: int32

    Series类型的基本操作:

    • Series类型包括index和values两部分
    In [14]: a = pd.Series({'a':1,'b':5})
    
    In [15]: a.index
    Out[15]: Index(['a', 'b'], dtype='object')
    
    In [16]: a.values  #返回一个多维数组numpy对象
    Out[16]: array([1, 5], dtype=int64)
    • Series类型的操作类似ndarray类型
    #自动索引和自定义索引并存,但不能混用
    In [17]: a[0]  #自动索引
    Out[17]: 1
    #自定义索引
    In [18]: a['a']
    Out[18]: 1
    #不能混用
    In [20]: a[['a',1]]
    Out[20]:
    a    1.0
    1    NaN
    dtype: float64
    • Series类型的操作类似Python字典类型
    #通过自定义索引访问
    #对索引保留字in操作,值不可以
    In [21]: 'a' in a
    Out[21]: True
    
    In [22]: 1 in a
    Out[22]: False

    Series类型在运算中会自动对齐不同索引的数据

    In [29]: a = pd.Series([1,3,5],index = ['a','b','c'])
    
    In [30]: b = pd.Series([2,4,5,6],index = ['c,','d','e','b'])
    
    In [31]: a+b
    Out[31]:
    a     NaN
    b     9.0
    c     NaN
    c,    NaN
    d     NaN
    e     NaN
    dtype: float64

    Series对象可以随时修改并即刻生效

    In [32]: a.index = ['c','d','e']
    
    In [33]: a
    Out[33]:
    c    1
    d    3
    e    5
    dtype: int64
    
    In [34]: a+b
    Out[34]:
    b      NaN
    c      NaN
    c,     NaN
    d      7.0
    e     10.0
    dtype: float64
    

    总结:Series基本操作类似ndarray和字典,根据索引对齐。

关键字