pandas入门之Series(一)
from pandas import Series
obj=Series([4,7,-5,3]) #创建Series对象,使用默认索引(默认索引是从0开始的数字)
obj
运行结果:
0 4
1 7
2 -5
3 3
dtype: int64
obj=Series((4,7,-5,3)) #不仅可以把列表转换成Series对象,也可将元组改成Series对象
print(obj)
tr=(1,2,3,4)
obj_1=Series(obj)
print(obj_1)
运行结果:
0 4
1 7
2 -5
3 3
dtype: int64
0 4
1 7
2 -5
3 3
dtype: int64
obj2=Series([1,2,3,4],index=['a','b','c','d']) #可以自己制定索引值
obj2
运行结果:
a 1
b 2
c 3
d 4
dtype: int64
obj2=Series([1,2,3,4],index=['a','b','c','d','e']) #如果给定索引的长度和数组的长度不一致会触发ValueError异常
运行结果:
ValueError: Wrong number of items passed 4, placement implies 5
obj2.index #索引值的提取
运行结果:
Index([‘a’, ‘b’, ‘c’, ‘d’], dtype=’object’),因为index为Series对象的属性
obj2['b'] #通过单个索引取值
obj2[['a','b']] #通过多个索引取值,输入的是一个列表, 不能是元组
obj2[('a','b')] #如果输入元组,则报TypeError 异常
运行结果分别为:
2
a 1
b 2
dtype: int64
仔细观察会发现,第一个输出的是一个数值2,是不带索引的,第二个输出是一个Series,带有索引,如果把第一个改成:
obj2[['b']]
结果是:
b 2
但是如果这样是会报错的:
obj2['a','b'] #这样是会报错的,而并不是输出这些索引对应的值
obj2[obj2>1] #对数组进行刷选,用的是值比较
b 2
c 3
d 4
dtype: int64
sdata={'a':1,'b':2,'c':3,'d':4} #创建字典
obj3=Series(sdata) #通过字典来创建Series
obj3
通过字典创建Series,字典的键对应Series的索引,值对应Series的值
obj4=Series(sdata,index=['a','bb','cc','dd']) #输出一个字典,只想要制定字典键值,那么可以增加一个index如果字典某 #键在index中不存在,那么该索引对应的值就是NaN
obj4
a 1.0
bb NaN
cc NaN
dd NaN
dtype: float64
a在字典中有,则其值为1,其他的在字典的键中都没有,则为NaN
import pandas as np
np.isnull(obj4)#首先判断哪些为空,如果为空,则返回真,否则返回假。对应的有notnull,
运行结果:
a False
bb True
cc True
dd True
dtype: bool
obj3+obj4 #Series的算数运算,根据相同的索引进行运算,如果某个索引没有对应的,那么就为NaN
obj3*obj4
a 2.0
b NaN
bb NaN
c NaN
cc NaN
d NaN
dd NaN
dtype: float64
a 1.0
b NaN
bb NaN
c NaN
cc NaN
d NaN
dd NaN
dtype: float64
obj4.name='rank'#此处是给Series对象本身的name属性赋值
obj4.index.name='index_name' #此处是给Series对象的索引的name属性赋值,
obj4
index_name
a 1.0
bb NaN
cc NaN
dd NaN
Name: rank, dtype: float64
要注意,一个是对象的name属性,一个是对象索引的name属性,要注意区分,相当于前者是表格名称,一个是表格属性列的 名字,就是表格中一般位于表格第一行第一列的那个单元格
obj4.index=['a1','b1','c1','d1']
obj4
a1 1.0
b1 NaN
c1 NaN
d1 NaN
Name: rank, dtype: float64
Series的索引可以通过赋值的方式修改,但是注意,既然修改,就必须对应的索引都应该有,即使某一个不修改直接写原来值就好,但是不能不写,例如:obj4.index=[‘a1’,’b1’,’c1’]会报错,必须大小一致。