最近在做数据分析,所以用了一些pandas,但是在用的过程中,深感基础不扎实,不能达到灵活运用的程度,于是想着深入学一下pandas. 那么就先从series开始。
Series是pandas里最基础的一个数据结构,虽然DateFrame常常用得更多,但series仍然是pandas里基础的基础,DateFrame中的列也都是一个series.
series是一种一维的数组型对象,有点类似于python原生的列表,但考虑到他也有索引,所以跟字典也有一些类似 。
In [2]: import pandas as pd
In [3]: obj=pd.Series([4,7,-5,3])
In [4]: obj
Out[4]:
0 4
1 7
2 -5
3 3
dtype: int64
从上面的代码可以看到series是有索引的,这一点跟列表,数组有一定的区别,如果创建series时没有指定索引,那么会自动生成从0到n-1的索引。
In [6]: obj.values
Out[6]: array([ 4, 7, -5, 3], dtype=int64)
In [7]: obj.index
Out[7]: RangeIndex(start=0, stop=4, step=1)
可以通过values和index属性来访问series的值和属性,这里要注意,这两者都不是简单的列表类型,而是一些特殊的对象 。
In [8]: obj2 = pd.Series([4,7,-5,3],index=['d','b','a','c'])
In [9]: obj2
Out[9]:
d 4
b 7
a -5
c 3
dtype: int64
In [10]: obj2.index
Out[10]: Index(['d', 'b', 'a', 'c'], dtype='object')
创建series时,也可以指定索引。
In [11]: obj2[1]
Out[11]: 7
In [12]: obj2.a
Out[12]: -5
In [13]: obj2['a']
Out[13]: -5
In [14]: obj2[1:2]
Out[14]:
b 7
dtype: int64
In [15]: obj2[1:3]
Out[15]:
b 7
a -5
dtype: int64
In [16]: obj2[['c','a','d']]
Out[16]:
c 3
a -5
d 4
dtype: int64
访问series元素的几种方法。他既能像列表一样直接用下标访问,也能像字典一样用索引访问,还能给定一个索引列表,访问一组索引的值。总体上还是比列表和字典都灵活。