【python】pandas库Series类型与基本操作详解

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和字典,根据索引对齐。

你可能感兴趣的:(python)