一、索引
索引的主要作用是对数据做切片,能够从pandas的对象中选取数据子集。
1、loc: 基于数据标签,如果标签值不存在,会抛出KeyError
单个的标签值
列表或者数组的标签值
切片范围数据 (基于索引名称,不属于前闭后开!)
布尔型的数组
# df.loc[ 行操作 , 列操作 ]
# 1、单个的标签值
df.loc[' 标签名称 ']
# 2、列表或者数组的标签值
df.loc[ [0,1,2] , : ]
df.loc[ [0,1,2] , [ 'color' , 'director_name' ,] ]
# 3、切片范围数据
df.loc[ 0:4 , : ]
# 4、布尔型的数组
df.loc[ [True,False,True] , : ] # False 不显示该条数据
df.loc[ df['duration']>=150 ,:]
2、iloc:基于整数位置,如果整数超出了索引范围,会抛出IndexError
一个整数
列表或者数组的整数
整数切片
布尔型数组
#1、一个整数
df.iloc[ 0 , : ]
#2、列表或者数组的整数
df.iloc[ [0,1,2,3] , : ]
#3、整数切片 前闭后开
df.iloc[ 0:4 , : ]
#4、布尔型数组
df.iloc[ [True,False, ] , : ]
3、ix:loc与iloc混合使用
df_new.ix[0:4,['color']]
4、应用:条件筛选
# 1. 筛选条件 , bool 数组
df_new['director_facebook_likes'] >= 100
# 2. 条件组合 , 注意括号
( bool 数组 ) & ( bool 数组 ) & ( bool 数组 )
# 3. 应用
df.loc[ ( bool 数组 ) & ( bool 数组 ) & ( bool 数组 ) ]
# 4. 符合条件 进行标记
df.loc[ (...) & (...) & (...) , ' 新列名' ] = 1
# 5. 标记不符合的数据 => 条件取反~(...) ,注意括号
df.loc[ ~( (...) & (...) & (...) ), ' 新列名' ] = 0
### 方式二 :
df.query(" 条件 & 条件 ")
df.query(" aa >= 100 ")
5、其他
isin 方法
Series.isin( [ '...' , '...' ] )
二、设置索引方法:
1.索引必须在数据集里面,不能外部引入
df.set_index([ '列名' , '...' , ])
df.set_index([ [0,1,2,3] ])
keys : column label or list of column labels