Pandas - Series(级数)

  • 简述

    Series 是一个一维标记数组,能够保存任何类型的数据(整数、字符串、浮点数、python 对象等)。轴标签统称为索引。
  • Pandas Series

    可以使用以下构造函数创建 Pandas Series -
    
    pandas.Series( data, index, dtype, copy)
    
    构造函数的参数如下 -
    序号 参数及说明
    1
    data
    数据采用各种形式,如 ndarray、列表、常量
    2
    index
    索引值必须是唯一且可散列的,与数据的长度相同。默认np.arrange(n)如果没有通过索引。
    3
    dtype
    dtype 用于数据类型。如果没有,将推断数据类型
    4
    copy
    复制数据。默认False
    可以使用各种输入创建一个Series,例如 -
    • 数组
    • 字典
    • 标量值或常数
  • 创建一个空 Series

    可以创建的基本Series是空Series。

    例子

    
    #import the pandas library and aliasing as pd
    import pandas as pd
    s = pd.Series()
    print s
    
    它的输出如下 -
    
    Series([], dtype: float64)
    
  • 从 ndarray 创建一个Series

    如果 data 是 ndarray,则传递的索引必须具有相同的长度。如果没有传递索引,则默认情况下索引将是range(n)在哪里n是数组长度,即[0,1,2,3…。range(len(array))-1].

    示例 1

    
    #import the pandas library and aliasing as pd
    import pandas as pd
    import numpy as np
    data = np.array(['a','b','c','d'])
    s = pd.Series(data)
    print s
    
    它的输出如下 -
    
    0   a
    1   b
    2   c
    3   d
    dtype: object
    
    我们没有传递任何索引,所以默认情况下,它分配的索引范围从 0 到len(data)-1,即 0 到 3。

    示例 2

    
    #import the pandas library and aliasing as pd
    import pandas as pd
    import numpy as np
    data = np.array(['a','b','c','d'])
    s = pd.Series(data,index=[100,101,102,103])
    print s
    
    它的输出如下 -
    
    100  a
    101  b
    102  c
    103  d
    dtype: object
    
    我们在这里传递了索引值。现在我们可以在输出中看到自定义的索引值。
  • 从 dict 创建一个Series

    一种dict可以作为输入传递,如果未指定索引,则按排序顺序获取字典键以构造索引。如果index被传入时,会拉出索引中标签对应的data中的值。

    示例 1

    
    #import the pandas library and aliasing as pd
    import pandas as pd
    import numpy as np
    data = {'a' : 0., 'b' : 1., 'c' : 2.}
    s = pd.Series(data)
    print s
    
    它的输出如下 -
    
    a 0.0
    b 1.0
    c 2.0
    dtype: float64
    
    Observe− 字典键用于构建索引。

    示例 2

    
    #import the pandas library and aliasing as pd
    import pandas as pd
    import numpy as np
    data = {'a' : 0., 'b' : 1., 'c' : 2.}
    s = pd.Series(data,index=['b','c','d','a'])
    print s
    
    它的输出如下 -
    
    b 1.0
    c 2.0
    d NaN
    a 0.0
    dtype: float64
    
    Observe− 索引顺序保持不变,缺失的元素用 NaN(非数字)填充。
  • 从标量创建Series

    如果数据是标量值,则必须提供索引。该值将被重复以匹配index
    
    #import the pandas library and aliasing as pd
    import pandas as pd
    import numpy as np
    s = pd.Series(5, index=[0, 1, 2, 3])
    print s
    
    它的输出如下 -
    
    0  5
    1  5
    2  5
    3  5
    dtype: int64
    
  • 使用位置访问序列中的数据

    该Series中的数据可以类似于在ndarray.

    示例 1

    检索第一个元素。正如我们已经知道的,数组的计数从零开始,这意味着第一个元素存储在第零位置,依此类推。
    
    import pandas as pd
    s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
    #retrieve the first element
    print s[0]
    
    它的输出如下 -
    
    1
    

    示例 2

    检索Series中的前三个元素。如果在其前面插入 :,则从该索引开始的所有项目都将被提取。如果使用两个参数(它们之间有:),则两个索引之间的项目(不包括停止索引)
    
    import pandas as pd
    s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
    #retrieve the first three element
    print s[:3]
    
    它的输出如下 -
    
    a  1
    b  2
    c  3
    dtype: int64
    

    示例 3

    检索最后三个元素。
    
    import pandas as pd
    s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
    #retrieve the last three element
    print s[-3:]
    
    它的输出如下 -
    
    c  3
    d  4
    e  5
    dtype: int64
    
  • 使用标签(索引)检索数据

    A Series就像一个固定大小的dict因为您可以通过索引标签获取和设置值。

    示例 1

    使用索引标签值检索单个元素。
    
    import pandas as pd
    s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
    #retrieve a single element
    print s['a']
    
    它的输出如下 -
    
    1
    

    示例 2

    使用索引标签值列表检索多个元素。
    
    import pandas as pd
    s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
    #retrieve multiple elements
    print s[['a','c','d']]
    
    它的输出如下 -
    
    a  1
    c  3
    d  4
    dtype: int64
    

    示例 3

    如果不包含标签,则会引发异常。
    
    import pandas as pd
    s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
    #retrieve multiple elements
    print s['f']
    
    它的输出如下 -
    
    …
    KeyError: 'f'