Pandas的loc,iloc與ix的用法及區別

2022-07-22 19:33:12 字數 2357 閱讀 7026

1.先來談一談loc,loc這個方法就是你有啥我就用啥,你沒有的我不用,pandas物件的index,columns有什麼,pd.loc[index,column],index就是pd.index的其中的乙個值或者是其中幾個值組成的序列,或就是pd.index,column是pd.columns中的乙個值或者其中幾個值,或者就是pd.columns

來來上**

1 >>>data

2userid movieid rating

3 1 2 257 2

4 0 3 251 2

5 3 2 32 4

6 2 4 256 1

7 4 3 258 2

8 >>>data.loc[0]

9 userid 3

10 movieid 251

11 rating 2

12name: 0, dtype: int64

13 >>>

14 >>>data

15userid movieid rating

16 a 2 257 2

17 b 3 251 2

18 c 2 32 4

19 d 4 256 1

20 e 3 258 2

21 >>>data.loc[0] #

對不起 你過不去,因為你沒有0這個索引值

22 >>>data.loc['

a'] #

正確方式

23 userid 2

24 movieid 257

25 rating 2

26name: a, dtype: int6427#

#####columns與index的情況類似這裡不在贅述

viewe

2.接下來我們再來談一談iloc這個方法,iloc正好與loc相反,iloc這個方法無論你pd物件有什麼,我不稀罕,我只用我自己的這一套,pd.iloc[n1,n2],其中n1或者n2必須是數字,或者數字組成的序列(無論行或者列皆如此),但是這個數字必須在pd物件的行數或者列數的範圍之內(不包括列數或者行數的最大值,因為從零開始)

廢話不多說,直接上**

>>>data

userid movieid rating

1 2 257 2

0 3 251 2

3 2 32 4

2 4 256 1

4 3 258 2

>>>data.iloc[0]

userid 2

movieid 257

rating 2

name: 1, dtype: int64

#注意到索引為0的位置是第二行行,而結果卻顯示的是第一行,這就是iloc不聽話的地方

>>>data

userid movieid rating

a 2 257 2

b 3 251 2

c 2 32 4

d 4 256 1

e 3 258 2

>>>data.iloc['a'] #對不起,我不吃你這一套

>>>data.iloc[0]

userid 2

movieid 257

rating 2

name: 1, dtype: int64

#顯然無論你的index或者columns的值是什麼,都不影響我的iloc自己取值的規則

3.最後再來說一說ix,ix這個就是個和事老,當你有數字索引值時,用數字索引就與loc一樣(其中乙個為數字,index或者columns就都為數字,若其中有字串他會將數字進行轉換),當index或者columns是字串是你用字串進行索引時與loc一樣,用數字進行索引時與iloc一樣,這裡需要注意的就是當索引為數字時的情況(ix只有在字元索引的情況下用數字索引才會與iloc保持一致,否則一直支援loc)由於情況與上面類似不**不再寫了(lazy)

有什麼問題還望能夠及時指出,小白在這不勝感激

Pandas中loc,iloc與直接切片的區別

0.把series的行index或dataframe的列名直接當做屬性來索引。如 s.index name df.column name 但是這種方法索引的名字可能會與自帶的方法衝突,比如min,max等等,所以可能會失效。另外,在新版本中,這種索引方法不能作為左值。1.df直接索引 直接索引索引的...

Pandas中loc,iloc和ix的區別

這篇部落格 直接看例子 data pd.series np.arange 10 index 49,48,47,46,45,1,2,3,4,5 data490 481472 463454 1526 3748 59dtype int64 data.iloc 3 490 481472 dtype int6...

Pandas中loc iloc及ix的區別

import pandas as pd import numpy as np df np.array a 23 b 13 c 15 table pd.dataframe df,index a b c columns left right print table 輸出結果 left right a a...