pandas之Series对象

Posted llbb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas之Series对象相关的知识,希望对你有一定的参考价值。

pandas库的Series对象用来表示一维数据结构,跟数组类似,但多了一些额外的功能,它的内部结构很简单,由两个相互关联的数组组成(index和values),其中主数组用来存放数据,主数组的每一个元素都有一个与之相关联的标签,这些标签存储在一个Index的数组中.


声明Series对象
构造参数如下:

1 def __init__(self, data=None, index=None, dtype=None, name=None,
2                  copy=False, fastpath=False):
1 >>> import pandas as pd
2 >>> s = pd.Series([1, 2, 3, 4])
3 >>>print(s)
4 0    1
5 1    2
6 2    3
7 3    4
8 dtype: int64

左侧是index(索引),声明Series时,若不指明index,pandas默认使用从0开始依次递增的数值作为index数组。
右侧是values(即封装的数据).

调用构造函数时指定index选项

1 >>> s = pd.Series([1, 2, 3,4], index=[a, b, c, d])
2 >>> print(s)
3 a    1
4 b    2
5 c    3
6 d    4
7 dtype: int64

使用index和values属性查看组成Series对象的两个数组

1 >>> print(s.index)
2 Index([a, b, c, d], dtype=object)
3 >>> print(type(s.index))
4 <class pandas.core.indexes.base.Index>
5 >>> print(s.values)
6 [1 2 3 4]
7 >>> print(type(s.values))
8 <class numpy.ndarray>

获取内部数据
直接使用data数组的下标获取:

1 >>> print(s[2])
2 3
3 >>> print(type(s[2]))
4 <class numpy.int64>

通过index数组的值来获取对应的data数组中的值

1 >>> print(s[c])
2 3

获取多个元素

 1 >>>print(s[0:2])
 2 a    1
 3 b    2
 4 dtype: int64
 5 >>> print(type(s[0:2]))
 6 <class pandas.core.series.Series>
 7 >>>print(s[[a, b]])   ---通过索引index里面的值来获取相应的元素
 8 a    1
 9 b    2
10 dtype: int64

为元素赋值: 使用上面介绍的方法选取元素,然后进行赋值

 1 >>> s[1] = 9999
 2 >>> print(s)
 3 a       1
 4 b    9999
 5 c       3
 6 d       4
 7 dtype: int64
 8 >>> s[c] = 666
 9 >>> print(s)
10 a       1
11 b    9999
12 c     666
13 d       4
14 dtype: int64

使用Numpy数组或者其他的Series对象定义新的Series对象.

 1 >>> import numpy as np
 2 >>> a = np.array([11, 12, 13, 14])
 3 >>> s2 = pd.Series(a)    ---Series对象的values属性本来就是一个Numpy.Array对象
 4 >>> print(s2)       --- Series对象中的values数组(数据)是对numpy.ndarray对象的引用,如果改变原有对象的值,Series对象的值也会跟着改变
 5 0    11
 6 1    12
 7 2    13
 8 3    14
 9 dtype: int32
10 >>> s3 = pd.Series(s)
11 >>> print(s3)
12 a       1
13 b    9999
14 c     666
15 d       4
16 dtype: int64
Series用作字典
因为Series对象的index对应values,所以我们可以用字典对象来构造Series对象.字典中的所有的键放在Series对象的index数组中,字典中的所有值放在Series对象的values数组中,仍然保持对应关系.
1 >>> dic = {"a": 3, "b": 4, "c": 5}
2 >>> s = pd.Series(dic)
3 >>> print(s)
4 a    3
5 b    4
6 c    5
7 dtype: int64

 

以上是关于pandas之Series对象的主要内容,如果未能解决你的问题,请参考以下文章

3-Panda之Series和DataFrame区别

pandas 学习: pandas 数据结构之Series

Pandas数据结构之Series

Pandas之Series和Dataframe

pandas之Series

pandas入门之Series