Series索引共有三种,下标索引,标签索引和布尔型索引
使用下标索引时,获取数据是左闭右开,使用下标索引,获取数据左闭右闭
下标索引
# 下标索引
arr = np.random.rand(5)
print(arr)
s1 = pd.Series(arr)
print(s1[1])
print(s1[3])
print(type(s1[3]))
[0.83701781 0.08756181 0.57899928 0.37857516 0.12329707]
0.08756181275082342
0.37857516493698906
<class 'numpy.float64'>
标签索引
#标签索引,获取多个标签值时,要用[[]],会生成一个新的series
arr = np.random.rand(5)
print(arr)
s2 = pd.Series(arr,index=list('adcde'))
print(s2)
print(s2['a'])
print(s2[['a','c']])
[0.92021565 0.63921501 0.98114784 0.47406939 0.41802989]
a 0.920216
d 0.639215
c 0.981148
d 0.474069
e 0.418030
dtype: float64
0.9202156473519585
a 0.920216
c 0.981148
dtype: float64
布尔型索引
# 布尔类型索引
b = pd.Series(np.random.rand(3)*10)
b[4]=None
bs1=b.isnull()
bs2=b > 5
bs3=b.notnull()
print(b)
print(bs1)
print(bs2)
print(bs3)
0 8.32797
1 4.53657
2 5.23156
4 None
dtype: object
0 False
1 False
2 False
4 True
dtype: bool
0 True
1 False
2 True
4 False
dtype: bool
0 True
1 True
2 True
4 False
dtype: bool
索引切片
arr = np.random.rand(5)
print(arr)
s3 = pd.Series(arr,index=list('adcde'))
s4 = pd.Series(arr)
print(s3)
print(s4)
# 下标索引,左闭右开
print(s4[1:4])
# 标签索引,左闭右闭
print(s3['a':'c'])
print(s4[:-1])
[0.77551755 0.48109558 0.88687642 0.0865391 0.27307937]
a 0.775518
d 0.481096
c 0.886876
d 0.086539
e 0.273079
dtype: float64
0 0.775518
1 0.481096
2 0.886876
3 0.086539
4 0.273079
dtype: float64
1 0.481096
2 0.886876
3 0.086539
dtype: float64
a 0.775518
d 0.481096
c 0.886876
dtype: float64
0 0.775518
1 0.481096
2 0.886876
3 0.086539
dtype: float64