1.先來談一談loc,loc這個方法就是你有啥我就用啥,你沒有的我不用,pandas物件的index,columns有什麼,pd.loc[index,column],index就是pd.index的其中的乙個值或者是其中幾個值組成的序列,或就是pd.index,column是pd.columns中的乙個值或者其中幾個值,或者就是pd.columns
來來上**
1 >>>dataviewe2userid 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的情況類似這裡不在贅述
2.接下來我們再來談一談iloc這個方法,iloc正好與loc相反,iloc這個方法無論你pd物件有什麼,我不稀罕,我只用我自己的這一套,pd.iloc[n1,n2],其中n1或者n2必須是數字,或者數字組成的序列(無論行或者列皆如此),但是這個數字必須在pd物件的行數或者列數的範圍之內(不包括列數或者行數的最大值,因為從零開始)
廢話不多說,直接上**
>>>data3.最後再來說一說ix,ix這個就是個和事老,當你有數字索引值時,用數字索引就與loc一樣(其中乙個為數字,index或者columns就都為數字,若其中有字串他會將數字進行轉換),當index或者columns是字串是你用字串進行索引時與loc一樣,用數字進行索引時與iloc一樣,這裡需要注意的就是當索引為數字時的情況(ix只有在字元索引的情況下用數字索引才會與iloc保持一致,否則一直支援loc)由於情況與上面類似不**不再寫了(lazy)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自己取值的規則
有什麼問題還望能夠及時指出,小白在這不勝感激
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...