python

当前位置:首页 > Pandas教程 > 当前文章

Pandas教程

Series下标索引、标签索引、切片索引、布尔型索引

2020-06-26 56赞 python中国网
每篇文章努力于解决一个问题!python高级、python面试全套、操作系统经典课等可移步文章底部。

  Series的values属性可以获取值,Series的索引也可以获取值且更加灵活,索引可以分为位置下标、标签索引、切片索引、布尔型索引。

  下标索引

  1、列表可以用list[-1],Series下标索引不能用负数,

  2、通过type或者Series的dtype属性查看下类型。

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

# 下标索引
arr = np.random.rand(5)
s = pd.Series(arr)
print(s)
print('------------')
print(s[0])
print(s[0].dtype)
print(type(s[0]))

0    0.400264
1    0.359603
2    0.608861
3    0.361018
4    0.652181
dtype: float64
------------
0.40026367833874676
float64
<class 'numpy.float64'>


  标签索引

  1、Series有了index参数就有了标签索引

  2、注意index设为字符串否则易和下标索引混淆

  3、选取多个标签需要嵌套2个[],且结果是新的Series

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

dic = {'语文':100,'数学':90,'英语':95}
s = pd.Series(dic,name='成绩')
print(s)
print('------------')
print(s['语文']) # 语文成绩
print('---------------')
print(s[['语文','数学']]) # 传入列表,多个标签
语文    100
数学     90
英语     95
Name: 成绩, dtype: int64
------------
100
---------------
语文    100
数学     90
Name: 成绩, dtype: int64


  切片索引

  1、用下标就是左闭右开(末端不包含)。

  2、用标签就是末端包含。

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

# 切片索引
s = pd.Series([1,2,3,4,5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
print('-------')
print(s[0:2])
print('--------')
print(s['a':'c'])

a    1
b    2
c    3
d    4
e    5
dtype: int64
-------
a    1
b    2
dtype: int64
--------
a    1
b    2
c    3
dtype: int64


  布尔型索引

  用来筛选数据

  1、isnull函数

  2、notnull函数

  3、直接比较

  用代码来帮助理解:

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

# 布尔型索
d = {'a': 1, 'b': 2, 'c': 3}
s = pd.Series(d, index=['a', 'b', 'c', 'd'])
print(s)
print('---------')
print('判断大于1')
res = s > 1
print(res)

print('打印大于1的')
print(s[res])

print('判断是否空')
print(s.isnull())

print('判断是否不是空')
print(s.notnull())

print('打印不为空的')
print(s[s.notnull()])

a    1.0
b    2.0
c    3.0
d    NaN
dtype: float64
---------
判断大于1
a    False
b     True
c     True
d    False
dtype: bool
打印大于1的
b    2.0
c    3.0
dtype: float64
判断是否空
a    False
b    False
c    False
d     True
dtype: bool
判断是否不是空
a     True
b     True
c     True
d    False
dtype: bool
打印不为空的
a    1.0
b    2.0
c    3.0
dtype: float64


文章评论

Series下标索引、标签索引、切片索引、布尔型索引文章写得不错,值得赞赏