Series对象
1. 声明Series对象
a.通过数组赋值
>>> import pandas as pd
>>> s = pd.Series([9,8,-1,2])
>>> s
0 9
1 8
2 -1
3 2
dtype: int64
b.设置index
>>> s = pd.Series([9,8,-1,2],index=['a', 'b', 'c', 'd'])
>>> s
a 9
b 8
c -1
d 2
dtype: int64
c.属性
Series有2个属性,index(索引)和values(元素)
>>> s.values
array([ 9, 8, -1, 2])
>>> s.index
Index([u'a', u'b', u'c', u'd'], dtype='object')
>>>
2. 选择内部元素
可以通过index或者下标来选择
>>> s[2]
-1
>>> s['c']
-1
更多操作如:
s[0:2]
s[['b','c']]
3. 为元素赋值
s[0] = 1
s['b'] = 1
4. 使用Numpy或其他Series对象定义新Series对象
>>> import numpy as np
>>> a = np.array([-1,2,3])
>>> b = pd.Series(a)
>>> b
0 -1
1 2
2 3
dtype: int64
其他用法如:
c = pd.Series(b),注意新Series对象是原对象的引用
5. 筛选元素
如:
s[s > 8]
6. Series对象运算和数学函数
支持+、-、*、/,如:
s/2
np.log(s)
7. Series对象的组成元素
s.unique() //元素去重
s.value_counts() //统计元素值
s.isin([0,3]) //判断是否是0/3
s[s.isin([0,3])] //过滤出值为0/3的元素
8. NaN
当数据结构中若字段为空或者不符合数字的定义时,用这个特定的值来表示
>>> s = pd.Series([1, np.NaN])
>>> s
0 1.0
1 NaN
dtype: float64
s.isnull() // 返回boolean数组
s.notnull()
s[s.isnull()]
9. Series用作字典
>>> d = {'a': 1, 'b': 2}
>>> s = pd.Series(d)
>>> s
a 1
b 2
dtype: int64
10. Series对象之间的运算
>>> s = pd.Series(d)
>>> s
a 1
b 2
dtype: int64
>>> s1 = pd.Series({'a':3, 'c': 4})
>>> s + s1
a 4.0
b NaN
c NaN
dtype: float64
注意:只对标签相同的元素求和,其他只属于任何一个Series对象的标签也被添加到新对象中,只不过他们的值均为NaN