1. 程式人生 > >pandas.DataFrame中選取、修改資料.loc,.iloc,.ix

pandas.DataFrame中選取、修改資料.loc,.iloc,.ix

本文轉載自:https://blog.csdn.net/hecongqing/article/details/61927615

loc——通過行標籤索引行資料 
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
'''