Python-Pandas模块Series( 二 )
3. Series的属性此处介绍Series属性包括两个方面(因为此处介绍的是Series的属性不是Series的方法,所以不要在后面加小括号):
- 获取Series的index索引和value值,顺便介绍统计index和value相同类别的个数的方法;
- 获取Series的名称以及index的名称;
#实验所用到的Series对象import pandas as pds = pd.Series([1,2,3],index = ["a","b","a"])print(s)3.1 获取index索引和value值,并统计index和value相同类别的个数下面将index和value分开来介绍:
#获取Series的索引print(s.index)result:Index(['a', 'b', 'a'], dtype='object')此时返回的索引是一个迭代器对象,这个对象还可能会有其他的属性 。如果我们想要获取其中的具体值的话,可以使用for循环进行遍历,还可以使用下面这些简单的属性将迭代转换为ndarray数组或者是list列表:print(s.index.values)print(type(s.index.values))print("-"*6)print(list(s.index.values))print(type(list(s.index.values)))result:['a' 'b' 'a']<class 'numpy.ndarray'>------['a', 'b', 'a']<class 'list'>如果我们想要统计Series中索引相同索引的个数,可以使用下面的方法(注意此时是方法不在是属性了):print(s.index.value_counts())result:a2b1dtype: int64values其实和index类似,下面简单的介绍一下:print(s.values)print(type(s.values))result:[1 2 3]<class 'numpy.ndarray'>与获取index不同的是,使用s.values返回的就是包含值的ndarray数组类型 。下面统计相同value值的个数,同样这个也是一个方法,这个方法还是很常用的:print(s.value_counts())result:312111dtype: int643.2 获取Series的名称以及index的名称Series有本身以及index和value,除了value没有名称外,Series本身和index都可以指定名称,如果不指定的话默认为None 。
s.name = "my Series"s.index.name = "my index"print(s)result:my indexa1b2a3Name: my Series, dtype: int644. Series的索引获取指定值Series简单来说就是带有索引的一维数组,我们很自然的可以通过索引来获取对应的value值,我们有三种方式进行索引:- 位置索引 。通过0 ~ n-1[n为Series中索引个数]进行索引;
- 名称索引 。通过传入指定的index名称来进行索引;
- 获取单个索引值;
- 获取多个索引值;
- 点索引 。通过".index名称"的形式进行索引;
import pandas as pds = pd.Series([1,2,3,4],index = ["a","b","c","d"])print(s)4.1 位置索引
# 位置索引print(s[0])print(s[-1])print(s[2])result:143此处的位置索引类似python中的list列表,不仅能够正向索引[从0开始]而且还能够反向索引[从-1开始反向索引] 。4.2 名称索引
# index名称索引#获取单个索引值print(s["a"])print("*"*6)#获取多个索引值print(s[["a","b","c"]])result:1******a1b2c3dtype: int64使用名称索引不仅可以索引单个value值,也可以索引多个value值 。平时用的最多的就是位置索引和名称索引,说一说使用他们的时候需要注意的地方:- 我们知道Series的index索引可以是任意类型,如果index为整数类型,那么位置索引就会失效 。
import pandas as pds = pd.Series(["a","b","c","d"],index = [1,3,4,5])# 此处使用位置索引会抛出异常KeyError# print(s[-1])# print(s[2])#此处得到的结果是名称索引print(s[3])result:b- 由于Series的index是可以重复的,对于位置索引来说无论index是否重复都与索引没有关系,但是如果使用名称索引的话,索引出来的是结果是一个具有相同index的Series对象 。
import pandas as pds = pd.Series(["a","b","c","d"],index = [1,1,4,5])# 此处使用的是名称索引print(s[1])result:1a1bdtype: object4.3 点索引平时使用名称索引以及位置索引足够使用 。点索引使用有很多局限性:
- 点索引只使用于Series的index类型为非数值类型才可以使用;
- 如果Series中的index中有一些索引名称与Python的一些关键字或者一些函数名重名的话,会导致无法获取Series的值;
推荐阅读
- 教你编写你的第一个Linux 内核模块“hello_module”
- 三十九、Python内置模块之sys
- Nginx 的过滤模块是干啥用的?
- 我最喜欢用的 5 个 Ansible 模块
- 一篇文章搞定Python连接mysql数据库模块PyMySQL
- 在生意参谋中通过以下哪个模块可以查看竞品的流量结构 在生意参谋中通过以下哪个模块可以查看竞品的流量结构
- 直通车主要看什么数据 流量解析是在直通车的哪一个模块中
- Nginx健康检查模块,生产还能这样配置
- 这操作厉害:怎么样发布你的 Python模块给别人 “pip install”
- 门禁系统原理及组成模块电路分析
