1. 程式人生 > 其它 >pandas中loc和iloc的使用細節

pandas中loc和iloc的使用細節

pandas中loc和iloc的使用細節

1、緣由

前段時間在使用pandas庫中的索引和切片的時候,突然就感覺有點懵,賦值和索引的操作總是報錯。

網上的很多資料講的也非常的淺顯,而且使用起來非常不順手。

於是我就找到很多的網上資料,然後自己動手操作總結了一下。

2、細節內容

1、loc 對應的是原生索引,對應的是序列號,索引的設定只能是數字
   loc 對應的是設定的索引,可以設定字串,如果設定的索引為數字,那麼就可以根據數字索引來使用。

2、iloc[[i],:]可以,但是iloc[i]不可以
  因為第一個是切片得到的二維陣列表,第二個得到的是一條資訊。
3、pf.loc[pf[(pf['標記']==pf['標記'].max())].index.tolist()[0],'備註']=1(其實這一行程式碼作用並不大,但是可以幫助掌握一些二維陣列屬性和方法)

   pf2['標記']==pf2['標記'].max() 返回的是一系列的布林值,把他們做成一個元組
   就可以用來篩選出符合條件的資料。
  如:pf[pf['標記']==pf['標記'].max()]

4、.iloc用於位置索引,裡面的資料是數字。
   可以根據位置查詢某一個值;
   可以使用iloc[ : , : ]來完成切片操作;
   可以使用iloc[[ ],[ ]]來選取自己需要的某行和列的資料

5、loc用於標籤索引,裡面是所在的索引
  單單可以輸入列名,選取的是某列的內容
   輸入數字,那麼就是根據標籤的行索進行的篩選
   輸入列名,那麼就是根據標籤的列索進列的篩選
   可以切片loc[ ],是根據索引名稱進行的
    可以花式索引(列表篩選),選取自己需要的某行和某列的資料。
    如pf.loc[['1','3'],['A','b']]


  6、兩者聯絡
    loc[ ]和pf[ ]裡面一樣可以根據條件篩選
    但是ilo不可以
    需要更改二維陣列中的資料時只能使用loc[ ],不能使用iloc[]