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[]