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数组中,仍然保持对应关系.
因为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对象的主要内容,如果未能解决你的问题,请参考以下文章