pythonのpandasパッケージのDataFrameに関する操作ilocと.locの違い

3985 ワード

import numpy as np  
import pandas as pd  
df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))
print(df)
df      
    a   b   c
0   0   2   4
1   6   8  10
2  12  14  16
3  18  20  22
4  24  26  28
5  30  32  34
6  36  38  40
7  42  44  46
8  48  50  52
9  54  56  58

 
  

.loc , df['b'] b ,df['b'] :

0     2
1     8
2    14
3    20
4    26
5    32
6    38
7    44
8    50
9    56
Name: b, dtype: int32
                ,            .loc         ,           .loc,       ,
     .iloc。          ,     .
 
  
df.loc[0, 'a']#             
   :0 
  
 
   
  
 
  
df.loc[0:3, ['a', 'b']]#  0,1,2,3  a,b  ,
                       #            df.loc[0:3, 'a']
                       #     ,      []     df.loc[0:3, ['a', 'b']]

  :
   a   b
0  0   2
1  6   8
2  12  14
3  18  20

 
  
#          ,      []           
#  
df.loc[[1, 5], ['b', 'c']] df.loc[[1, 5]][['b', 'c']]    ,     ,            ,      ,        
    b   c
1   8  10
5   32  34

column name , , index , , .iloc 。 i index, 。
df.iloc[1,1]


 
   
  :8
df.iloc[0:3, [0,1]]

 
   
    a   b
0   0   2
1   6   8
2  12  14
3  18  20
.iloc ,
 
   
df.iloc[[0, 3, 5], 0:2]  #                   ,     0,1 

 
   
  :
   
  a   b
0   0   2
3  18  20
5  30  32

 
   
df.iloc[:, :]#        
df.loc[:][:]#      


 
   
     a   b   c
0   0   2   4
1   6   8  10
2  12  14  16
3  18  20  22
4  24  26  28
5  30  32  34
6  36  38  40
7  42  44  46
8  48  50  52
9  54  56  58

 
   
 
   
, df a 6 b c
df.loc[df['a'] == 6][['b', 'c']]


 
   
 
   
 
  
 
  
   b   c
1  8  10