python pandas (ix & iloc &loc) 的區別


oc——通過行標簽索引行數據
iloc——通過行號索引行數據
ix——通過行標簽或者行號索引行數據(基於loc和iloc 的混合)
同理,索引列數據也是如此!

舉例說明:
1、分別使用loc、iloc、ix 索引第一行的數據:
(1)loc

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號
columns=['c','d','e']#列號
df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框

#print df.loc['a']
'''
c 1
d 2
e 3
'''

print df.loc[0]
#這個就會出現錯誤
'''
TypeError: cannot do label indexing on <class 'pandas.indexes.base.Index'>
with these indexers [1] of <type 'int'>

(2)iloc

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號
columns=['c','d','e']#列號
df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框

print df.iloc[0]
'''
c 1
d 2
e 3
'''
print df.iloc['a']
'''
TypeError: cannot do positional indexing on <class 'pandas.indexes.base.Index'>
with these indexers [a] of <type 'str'>

(3)ix

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號
columns=['c','d','e']#列號
df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框

print df.ix[0]
'''
c 1
d 2
e 3
'''
print df.ix['a']
'''
c 1
d 2
e 3
'''
2、分別使用loc、iloc、ix 索引第一列的數據:

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號
columns=['c','d','e']#列號
df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框

print df.loc[:,['c']]

print df.iloc[:,[0]]

print df.ix[:,['c']]

print df.ix[:,[0]]
#結果都為
'''
c
a 1
b 4
3、分別使用loc、iloc、ix 索引多行的數據:

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號
columns=['c','d','e']#列號
df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框

print df.loc['a':'b']

print df.iloc[0:1]

print df.ix['a':'b']

print df.ix[0:1]
#結果都為
'''
c d e
a 1 2 3
b 4 5 6
4、分別使用loc、iloc、ix 索引多列的數據:

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號
columns=['c','d','e']#列號
df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框

print df.loc[:,'c':'d']

print df.iloc[:,0:2]

print df.ix[:,'c':'d']

print df.ix[:,0:2]
#結果都為
'''
c d
a 1 2
b 4 5
'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM