loc的使用
简单的说:
iloc,即index locate 用index索引进行定位,所以参数是整型,如:df.iloc[10:20, 3:5]
loc,则可以使用column名和index名进行定位,如:
df.loc[‘image1’:‘image10’, ‘age’:‘score’]
首先初始化一个df方便使用
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.uniform(1,5,(4,3)))
设置行列的名字
df.index=['a','b','c','d']
df.colums==['fir','sec','thr']
或者直接在初始化的时候直接写入如
df = pd.DataFrame(np.random.uniform(1,5,(4,3)), index=['a', 'b', 'c','d'],columns=['fir', 'sec','thr'])
单一标签:返回一整行
df.loc['a']
标签列表。使用[[]]
返回DataFrame
df.loc[['a','b']]#a,b两行
返回指定行列的值
df.loc['a','fir']#返回a行fir列的值
切片表示行开始和结束的位置 注意范围 和要显示的列
df.loc['a':'c','fir']#这是a到c行返回fir这一列的值
布尔值返回需要的行数
df.loc[[Falese,True,False,True]]#返回b和c行,长度和行相同
增加条件进行筛选
df.loc[df['third']>3]#选取在third列中值大于3的行
按条件显示
df.loc[df['third']>3,'fir']#选取third列中值大于三的并显示相应的fir的值
设置整行的值
df.loc['a']=2.33#设置a行的所有值为2.33
设置整列的值
df.loc[:,'fir']=4.22#设置fir整列的值为4.22
loc的深度用法
1、loc 不仅可以输入数字也可以直接column名字,注意先行后列
df.loc[[0, 1, 10, 100], ['country', 'province', 'region_1', 'region_2']]
表示index(行)为0,1,10,100,列名为'country', 'province', 'region_1', 'region_2'。
2、
df.loc[df.country=='Italy']
选取country 列全是‘Italy’的数据
3、这两种写法等同,注意isin()的用法
df_final = df[df.country.isin(["Italy", "France"]) & (df.points >= 90)].country
df = df[df.points>=90]
df_final = (df.loc[df.country.isin(['France','Italy']),'country'])