Python-Pandas模块Series( 三 )

import pandas as pd# 此时的index为数值类型s = pd.Series(["a","b","c","d"],index = [1,2,3,4])# 会抛出语法错误的异常SyntaxError# print(s.2)import pandas as pd# 此时的index为数值类型s = pd.Series([1,2,3,4],index = ["a","b","c","def"])# 通过点索引获取value值print(s.a)# 会抛出语法错误的异常SyntaxError# print(s.def)result:15. Series的切片slice通过Series的切片来获取连续的多个索引对应的值,Series的切片有两种方式:

  1. 使用位置切片,类似s[start_index : end_index],熟悉python都知道这种切片方式,需要注意的这种方式切片同样是包左不包右;
  2. 使用名称切片,类似s [start_index_name , end_index_name],这种方式和上面使用位置切片的最大区别就是名称切片,即包左又包右;
import pandas as pds = pd.Series([1,2,3,4],index = ["a","b","c","d"])print(s)result:a1b2c3d4dtype: int64
5.1 位置切片
# 使用位置切片print(s[0:2])result:a1b2dtype: int64
5.2 名称切片
# 使用名称切片print(s["b":"d"])result:b2c3d4dtype: int64注意:
在上面的索引方式,我们知道了位置索引和名称索引在index为数值类型时候的不同,当index为数值类型的时候,使用位置索引会抛出keyerror的异常,也就是说当index为数值类型的时候,索引使用的是名称索引 。但是在切片的时候,有很大的不同,如果index为数值类型的时候,切片使用的是位置切片 。总的来说,当index为数值类型的时候:
  1. 进行索引的时候,相当于使用的是名称索引;
  2. 进行切片的时候,相当于使用的是位置切片;
6. Series的增删改查
6.1 添加Series的值(增)
为Series添加新的值的方式有两种:
  1. 使用series.Append(pd.Series(data,index))的方式添加,这种方式会返回一个新的Series对象,这种方式最大的特点就是可以添加多个Series值;
  2. 使用series["new_index"] = value的方式添加,这种方式会直接在原来的Series上进行修改,并且这种方式每次只能够添加一个Series值;
import pandas as pds = pd.Series(1,index =["a"])print(s)print("*"*6)# 使用append方式添加多个Series值# 此处将返回的值赋值给了原来的Series,因为使用append添加的话返回的是新的Series对象s = s.append(pd.Series([2,3],index = ["b","c"]))print(s)print("*"*6)# 使用s[new_index] = value方式添加s["d"] = 4print(s)result:a1dtype: int64******a1b2c3dtype: int64******a1b2c3d4dtype: int64
6.2 删除series的值(删)
删除直接使用del关键字删除即可 。
import pandas as pd s = pd.Series([1,2,3,4],index = ["a","b","c","d"])print(s)print("*"*6)del s["b"]print(s)result:a1b2c3d4dtype: int64******a1c3d4dtype: int64
6.3 通过索引修改Series的值(改)
其实此时介绍的修改Series的值和在4中介绍的一致,只不过将4中介绍的获取到的Series值进行重新的赋值即是修改对应Series的值,因此此处也有三种方式:
  1. 通过位置索引修改value值;
  2. 通过名称索引修改value值;
  3. 通过点索引修改value值;
此处因为类似,所以只选择一个进行实验:
import pandas as pds = pd.Series([1,2,3,4],index = ["a","b","c","d"])s["a"] = 100print(s)result:a100b2c3d4dtype: int64
6.4 判断索引是否在Series中(查)
判断index是否在Series中很简单,其实和python中查看元素是否在list列表中的方法是一样的 。
import pandas as pd s = pd.Series([1,2,3,4],index = ["a","b","c","d"])print("a" in s)print("q" in s)result:TrueFalse7. 过滤Series的值我们可以通过布尔选择器,也就是条件筛选来过滤一些特定的值,从而仅仅获取满足条件的值 。过滤Series的值的方式分为两种:
  1. 单条件筛选;
  2. 多条件筛选;
import pandas as pd s = pd.Series([1,2,3,4],index = ["a","b","c","d"])
7.1 单条件筛选
print("-"*5 + "布尔选择器" + "-"*5)print(s < 3)print("-"*5 + "单条件查询" + "-"*5)print(s[s<3])result:-----布尔选择器-----aTruebTruecFalsedFalsedtype: bool-----单条件查询-----a1b2dtype: int64


推荐阅读