iloc和loc区别和应用总结

        在python进行人工智能编程中,对于DataFrame类型数据的操作和表达,经常用loc和iloc两种函数从数据集中取数,但经常会发生混淆,因此根据详细比较结果,分享一篇心得。

目录

       一、构建DataFrame类型数据

       二、iloc和loc的应用表达

       三、总结

一、构建DataFrame类型数据

import numpy as np
import pandas as pd

data = np.arange(0, 50, 2)


data1 = data.reshape(5, 5)
iloc和loc区别和应用总结_第1张图片

data2 = pd.DataFrame(data1, columns=['a', 'b', 'c','d','e'])

  iloc和loc区别和应用总结_第2张图片

二、iloc和loc的应用表达

1、表达某一个数

     iloc: data2.iloc[2,2]

     

      loc: data2.loc[2,'c']

2、表达某一行
   iloc:                   
      data2.iloc[2]  
 
   loc:                 
      data2.loc[2]  


3、表达多行
   iloc:           
      data2.iloc[1:5]       #左闭右开

   loc:                
      data2.loc[1:4]        #左闭右闭


4、表达一列
   iloc:                              
      data2.iloc[:,1:2] 
          
   loc:                                  
      data2.loc[:,'a'] 
    
 
5、表达多列
   iloc:               
      data2.iloc[:,1:4]

      data2.iloc[:,[1,2,3]]

   loc:                
      data2.loc[:,['b',‘c',’d']] 

      data2.loc[:,'b':'d']

      
6)、表达不连续某几行,某几列
    iloc:                         
       data2.iloc[[1,2,4],[1,3]] 
     
    loc:                          
       data2.loc[[1,2,4],['b',‘d']]
 
7、表达不连续的某几行
    iloc:                           
       data2.iloc[[1,2,4],:]    

    loc:                            
       data2.loc[[1,2,4],:] 

8、表达不连续的某几列
    iloc:                    
       data2.iloc[:,[0,2]] 

    loc:                     
       data2.loc[:,['a','c']]  

三、总结
    1、iloc的列不能用列标签;loc的列只能用列标签,不能用索引或切片,除非用全切片
    2、两者都可以表达各种情况;
    3、两者不管表达行,还是列,使用切片时,都是loc左闭右闭,iloc左闭右开;

作者github:luquanmin (github.com)https://github.com/luquanmin

你可能感兴趣的:(pathon基础应用,python,数据挖掘)