文章目录
1. 索引器
1.1 表的列索引
df[列名]
,返回值为Series
,当列名不包含空格,可用 df.列名
取出
df[[列名组成的列表]]
,返回值为DataFrame
1.2 序列的行索引
-
以字符串为索引的Series
s[item]
, 若单个值对应,则返回这个标量值,如果有多个值对应,则返回一个Series
s[[item的列表]]
,返回一个Series
s[start: end: step]
,如果是唯一值的起点和终点字符才可以使用切片,且包含两个端点;如果不唯一,需要排序后才可使用切片 -
以整数为索引的Series
s[int]
,若单个值对应,则返回这个标量值,如果有多个值对应,则返回一个Series
s[[int的列表]]
, 返回一个Series
s[start: end: step]
,整数切片,两个索引不允许有重复值,取出对应索引位置的值,不包含右端点
1.3 loc索引器
df.loc[*, *]
基于元素的loc索引器,第一个*
代表行的选择,第二个*
代表列的选择,如果省略第二个,就是行筛选
*
位置一共有五类合法对象,分别是:
df.loc[单个元素]
- eg1:
df.loc['row_name']
或df.loc['col_name']
,如果该元素在索引中重复则结果为DataFrame
,否则为Series
- eg2:
df.loc['row_name', 'clo_name']
,如果该元素在索引中重复则结果为Series
,否则为单个元素
- eg1:
df.loc[元素列表]
- eg1:
df.loc[['row_name1','row_name2',...],['clo_name1','clo_name2',...]]
,取出列表中所有元素值对应的行或列
- eg1:
df.loc[元素切片]
- eg1:
df.loc['row_namex':'row_namey', 'clo_namex':'clo_namey']
,字符切片,如果是唯一值的起点和终点字符才可以使用切片,且包含两个端点 - eg2:
df.loc[3:5]
,整数切片,如果是唯一值的起点和终点数字才可以使用切片,且包含两个端点
- eg1:
df.loc[布尔列表]
- 传入
loc
的布尔列表要与DataFrame
长度相同 - eg1:
df.loc[df.clo_name > num]
- eg2:
df.loc[df.col_name.isin(['name1','name2'])]
- eg3:
df.loc[condition1 & condition2]
,复合条件可用|(或), &(且), ~(取反)
- 传入