Series类型
由一组数据及与之相关的数据索引组成
一维带“标签”数组。数据 大小不可变,值可变
基本操作类似ndarray和字典,根据索引对齐。
一、两种索引
1、自动索引 从0开始,系统自动创建的索引
2、自定义索引 用户用列表方式定义的索引
如果自定义索引是数值时,自动索引将不能使用
二、series的创建pd.Series(data,index=,dtype=)
data | 由其他类型创建 | b=pd.Series(data,index=) |
---|---|---|
1、标量值创建 | 数据都是一个值;索引值决定数据个数,故不能省略索引值, | b=pd.Series(25,index=[‘a’,‘b’,‘c’,'d,]) |
2、字典 | 键值对默认生成对应索引和数据,可用索引改变位置;若后面的索引,不在键值对里时,值为NaN,为空 | b=pandas.Series({‘a’:1,‘b’:2,‘c’:3,‘d’:4}) b=pd.Series({‘a’:9,‘b’:7,‘c’:4,‘d’:6},index=[‘c’,'‘b’,‘a’,‘d’]) |
3、nadarray | 数据、索引都可从数组生成 | b=pd.Series(np.arange(5),np.arange(9,4,-1)) |
4、列表 | b=pd.Series([1,2,3,4],[9,8,7,6]) | |
5、其他函数 | range() | pd.Series(range(5),range(5)) |
三、获取数据
Series可以看做index和array数据结合得到series
.index | 获得索引 | In[4]:a.index Out[4]: Int64Index([9, 8, 7, 6], dtype=‘int64’) |
---|---|---|
.values | 获得数据 | a.values array([1, 2, 3, 4], dtype=int64) |
获取数据值:可用自定义索引(标签)或自动索引 | 自动索引和自定义索引不能同时使用 ;如果索引是数字时,没有自动索引 | |
自定义索引的列表进行切片,两层[[ | a**[[**9,7,6]] | |
自动索引切片 | b[:3] |
属性 | |
---|---|
s.dtype | 获取数据类型 |
s.size | 数据大小 |
操作 | |
s.head(n) s.tali(n) | 获取前n行、后n |
符合数据类型对应的操作,如字符串的函数 s.str.函数() |
1、基本操作 | a=pandas.Series([1,2,3,4],[9,8,7,6]) | |
---|---|---|
类似ndarray | 1、索引采用[ ] [[ ]] | b[3] |
2、numpy运算、操作可用于Series | b.median() | |
3、自定义索引的列表进行切片 | a[[9,7,6]] | |
4、自动索引切片 | b[:3] | |
类似字典 | 1、用索引值得数据值,索引类似字典的key | b[3] |
2、判断索引是否存在:in 操作,返回布尔。 判断的是自定义索引,不会判断自动索引 | 9 in a,9为索引值 | |
3、获取值:.get(索引,默认值) | a.get(9,100), 如果索引9有值,返回它的值,没有的话返回100 |
2、对齐操作 | Series+Series |
---|---|
相同索引的值进行运算 | 因是基于索引的运算,若两个series没有同时存在这个索引,则该索引的值会变为NaN |
b=pandas.Series({‘a’:1,‘b’:2,‘c’:3,‘d’:4});c=pandas.Series({‘b’:2,‘c’:4,‘e’:5}) | b+c >>> a NaN b 4.0 c 7.0 d NaN e NaN dtype: float64 |
3、name属性 | |
---|---|
b.name=‘series对象’ | 设置对象名 |
b.index.name=‘索引列’ | 设置索引名 |
4、修改 |
---|
随时修改,即刻生效 |
类似字典的修改 |
b=pandas.Series({‘a’:1,‘b’:2,‘c’:3,‘d’:4})
b[‘a’]=10
b.name=‘对象’