[python学习笔记]loc与iloc函数的用法及区别

系统 130 0

loc(location)为Selection by Label函数,即通过标签(行列索引的具体值)来索引数据,由于loc函数中索引的标签是str类型,所以标签的开头和结尾都要写。

            
              import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))
df.loc[0:2,['b','c']]#默认行索引情况下,选取df前三行的b,c两列
df.loc[:,'a':'c']#选取df的a到c列,c列也包含在内,且单独的:表示所有行

            
          

高级用法:

            
              df.loc[df['b'][(df['b'] > 49)|(df['b'] < 10)].index, 'b'] = np.nan#将b列中所有大于49或小于10的值赋值为null值
df.loc[(df['b'].isnull()), 'b'] = 0#再将b列中所有null值全部赋值为0
df.loc[(df['b'].notnull()), 'b'] = 0#或将b列中所有非null值全部赋值为0
df_a,df_c = df.loc[(df['b'] > 50)|(df['b'] < 10),('a','c')].values[2]#根据b列中的值来选取a,c两列的值,并将返回结果中的第三行赋值到df_a和df_c中

            
          

iloc(integer location)为Selection by Position函数,即通过位置(轴0到轴-1)来索引数据,由于iloc函数中索引的位置是int类型,在选取行列时要注意前闭后开。

            
              df.iloc[0:2,[0,1]]#选取df前两行的第一和第二列,行序号为2的第三行不包括在内
df.iloc[:,0:3]#选取df的前三列,行序号为3的第四行不包括在内

            
          

loc和iloc函数的两个参数既可以是列表也可以是单个字符(整数),如果两个参数都为列表则返回的是DataFrame,否则,则为Series。

            
              df.iloc[0:2,[0,1]]#返回对象类型为DataFrame
df.iloc[1,0:2]#返回对象为Series
df.loc[0:1,['b','c']]#返回对象为DataFrame
df.loc[1,'a':'c']#返回对象为Series
df.loc[:,['b','c']]#返回对象为DataFrame

            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论