1.区别
(1)都用于选择数据
(2)适用于pandas中的两种数据类型,Series\DataFrame
(3)loc 是基于行或列的标签进行选择、iloc是基于行号索引或列号索引进行选择、ix通过行号列号索引或行号列号进行选择
2.实例
(1)loc[[行标签],[列标签]]
import pandas as pd df1=pd.DataFrame({ 'A':['A0','A1','A2','A3'], 'B':['B0','B1','B2','B3'], 'C':['C0','C1','C2','C3'], 'D': ['D0', 'D1', 'D2', 'D3'] }, index=[0,1,2,3]) print(df1.loc[[0,3],['A','B']])
结果
A B 0 A0 B0 3 A3 B3
(2)iloc[行号:行号,列号:列号]
import pandas as pd df1=pd.DataFrame({ 'A':['A0','A1','A2','A3'], 'B':['B0','B1','B2','B3'], 'C':['C0','C1','C2','C3'], 'D': ['D0', 'D1', 'D2', 'D3'] }, index=[0,1,2,3]) print(df1.iloc[:2,[2]])
结果
C 0 C0 1 C1
iloc[[行号],[列号]]
import pandas as pd df1=pd.DataFrame({ 'A':['A0','A1','A2','A3'], 'B':['B0','B1','B2','B3'], 'C':['C0','C1','C2','C3'], 'D': ['D0', 'D1', 'D2', 'D3'] }, index=[0,1,2,3]) print(df1.iloc[[0,1,2],[0,1]])
结果
A B 0 A0 B0 1 A1 B1 2 A2 B2
(3)ix[[行标签],[列标签]]
import pandas as pd df1=pd.DataFrame({ 'A':['A0','A1','A2','A3'], 'B':['B0','B1','B2','B3'], 'C':['C0','C1','C2','C3'], 'D': ['D0', 'D1', 'D2', 'D3'] }, index=list('abcd')) print(df1.ix[['a','b'],['B','C']])
结果
B C a B0 C0 b B1 C1
ix[[行号],[列号]]
import pandas as pd df1=pd.DataFrame({ 'A':['A0','A1','A2','A3'], 'B':['B0','B1','B2','B3'], 'C':['C0','C1','C2','C3'], 'D': ['D0', 'D1', 'D2', 'D3'] }, index=list('abcd')) print(df1.ix[[0,1],[1,2]])
结果
B C a B0 C0 b B1 C1
ix[[行标签],[列号]]
import pandas as pd df1=pd.DataFrame({ 'A':['A0','A1','A2','A3'], 'B':['B0','B1','B2','B3'], 'C':['C0','C1','C2','C3'], 'D': ['D0', 'D1', 'D2', 'D3'] }, index=list('abcd')) print(df1.ix[['a','b'],[1,2]])
结果
B C a B0 C0 b B1 C1
(4)自带的切片功能
df[[行标签]][行号]
import pandas as pd df1=pd.DataFrame({ 'A':['A0','A1','A2','A3'], 'B':['B0','B1','B2','B3'], 'C':['C0','C1','C2','C3'], 'D': ['D0', 'D1', 'D2', 'D3'] }, index=list('abcd')) print(df1[['B','C']][0:2])
结果
B C a B0 C0 b B1 C1