天天看點

Pandas中的進階索引loc、iloc、ix精簡概括

1. loc(索引名 -取值)

  • 先行後列
  • loc是

    基于自定義的索引名

    來切片
  • loc切片包含

    起始

    結尾

  • 可以通過

    行索引編号 + 自定義的列索引名

    組合來切片
  • DataFrame 不能直接切片,可以通過loc來做切片
dataframe.loc['b':'d']
dataframe.loc[0:2, 'a']        # 第一個參數是行,第二個參數是列,傳回Series
dataframe.loc[0:2, 'a':'c']    # 傳回DataFrame 
           

2. iloc(下标 -取值)

  • 先行後列
  • iloc作用和loc一樣,不過是

    基于索引編号

    來切片
  • iloc切片包含起始,不包含結尾
  • 隻能通過

    索引編号

    來切片,不能用

    自定義的索引名

    來切片
dataframe.iloc[1:3, 1]           # 第一個參數行,第二個參數是列,傳回Series
dataframe.iloc[1:3, 1:3]
           

3. ix(索引名與下标 -混合取值)

  • 先行後列
  • ix是以上二者的綜合,既可以使用索引編号,又可以使用自定義索引,要視情況不同來使用,如果索引既有數字又有英文,那麼這種方式是不建議使用的,容易導緻定位的混亂。
  • Pandas0.20.0版本以後,不建議使用.ix索引器,而使用更嚴格的.iloc和.loc索引器。
dataframe.ix[0:2, 0]           # ******
dataframe.ix[0:2, 'a']
dataframe.ix[0:2, 0:3]
dataframe.ix[0:2, 'a':'b']