Python笔记:pandas之索引与切片
索引对象
pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。
构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。
Index对象是不可变的,因此用户不能对其进行修改,不可变可以使Index对象在多个数据结构之间安全共享。
除了类似于数组,Index的功能也类似一个固定大小的集合。
与python的集合不同,pandas的Index可以包含重复的标签。
#Index的方法和属性 append #连接另一个Index对象,产生一个新的Index difference #计算差集,并得到一个Index intersection #计算交集 union #计算并集 isin #计算一个指示各值是否都包含在参数集合中的布尔型数组 delete #删除索引i处的元素,并得到新的Index drop #删除传入的值,并得到新的Index insert #将元素插入到索引i处,并得到新的Index is_monotonic #当各元素均大于等于前一个元素时,返回True is_unique #当Index没有重复值时,返回True unique #计算Index中唯一值的数组
基本功能
重新索引
#根据新的索引进行重排,如果某个索引值当前不存在,则填充缺失值
ser2 = ser.reindex(['a', 'b', 'c', 'd'])
#reindex函数的参数
index #用作索引的新序列,既可以是Index实例,也可以是其他序列型的Python数据结构
method #缺失值的填充方式
fill_value #在重新索引的过程中,需要引入缺失值时使用的替代值
limit #前向或后向填充时的最大填充量
tolerance #向前后向后填充时,填充不准确匹配项的最大间距(绝对值距离)
level #在MultiIndex的指定级别上匹配简单索引,否则选取其子集
copy #默认为True,无论如何都复制,如果为False,则新旧相等就不复制
丢弃指定轴上的项
#删除索引为'c'的项
new_ser = ser.drop('c')
#删除索引为1的行
frame.drop(1)
#通过指定参数axis的值,删除name列的数据
frame.drop('name', axis=1)
索引、选取和过滤
Series索引的工作方式类似于Numpy数组的索引,只不过Series的索引值不只是整数。
利用标签的切片运算与普通的Python切片运算不同,其末端是包含的。
可以利用切片对Series的相应部分进行设置。
用一个值或序列对DataFrame进行索引会得到一个或多个列的数据
DataFrame的索引选项
frame.loc[val] #通过标签,选取DataFrame的单个行或一组行 frame.loc[:,val] #通过标签,选取单列或列子集 frame.loc[val1, val2] #通过标签,同时选取行和列 frame.iloc[where] #通过整数位置,从DataFrame选取单个行或行子集 frame.iloc[:,where] #通过整数位置,从DataFrame选取单个列或列子集 frame.iloc[where_x,where_y] #通过整数位置,同时选取行和列 get_value #通过行和列标签选取单一值 set_value #通过行和列标签设置单一值

浙公网安备 33010602011771号