本文主要對比介紹pandas中的loc和iloc兩個(gè)基于索引的取值方式。
iloc的意思是基于索引(index-based selection),輸入為索引,也就是,行是(0,1,2,3,4)中的值,列是(0,1,2)中的值。
loc的意思是基于標(biāo)簽(label-based selection),輸入為標(biāo)簽,也就是,行是(0,1,2,3,4)中的值,列是('a', 'b' ,'c')中的值。
>>> import pandas as pd
>>> df = pd.DataFrame([[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]],
columns=['a', 'b', 'c'])
>>> df
a b c
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
# iloc取值
>>> df.iloc[0, 1]
2
# loc取值
>>> df.loc[0, 'a']
2
# 切片,前閉后開區(qū)間,結(jié)果中第一列是index
>>> df.iloc[0:2, 1]
0 2
1 3
Name: b, dtype: int64
# 切片,前閉后閉區(qū)間,結(jié)果中第一列是index
>>> df.iloc[0:2, 1]
0 1
1 2
2 3
Name: a, dtype: int64
注意
loc和iloc在切片時(shí),范圍的區(qū)間有些許差別。
iloc中范圍是前閉后開區(qū)間
loc中范圍是前閉后閉區(qū)間