1. 程式人生 > 其它 >Pandas學習筆記 03 索引

Pandas學習筆記 03 索引

joyful pandas教程第三章索引內容總結,包括loc、iloc索引器,多級索引,索引的常用方法、運算以及切片方式。

第三章 索引 總結

目錄

1 索引器

[]:列選擇

loc:基於元素

iloc: 基於位置

query:減少程式碼長度

2 多級索引

行索引和列索引都是MultiIndex型別,索引中的元素是元組。

索引的名字和值屬性可以通過namesvalues

獲得。

通過get_level_values(n)可以獲得第n層的索引。

通過IndexSlice可以多層切片。

構造方法:from_tuples, from_arrays, from_product

3 索引的常用方法

3.1 索引層的交換和刪除

swaplevel:交換指定軸的兩個索引層

reorder_levels:交換指定軸的任意層

droplevel:刪除某一層的索引

3.2 索引屬性的修改

rename_axis: 修改索引層的名稱,傳入字典或函式

rename:修改索引值,level指定索引層,傳入字典或函式

map:定義在index上的方法,直接傳入索引的元組,可以對多級索引進行壓縮或展開。

3.3 索引的設定與重置

set_index:設定索引,預設刪除原索引,append=True表示保留原索引,新設定作為內層索引。

reset_index:取消索引,預設將取消的索引層新增到列中,drop=True表示去掉索引層。

3.4 索引的變形

reindex:傳入indexcolumns引數列表,新表會根據索引自動對齊。

reindex_like:傳入DataFrame引數,仿照該引數變形。

4 索引運算

交集:id1.intersection(id2) id1 & id2

並集:id1.union(id2) id1 | id2

差集:id1.difference()

(id1 ^ id2) & id1

對稱差集:id1.symmetric_difference(id2) id1 ^ id2

(注意unique去重)

5 索引切片

5.1 單層索引切片

5.1.1 序列Series的行索引

a. 字串切片,包含兩個端點,前後端點值重複出現則需先排序

b. 整數切片,左閉右開,取出索引位置的值

5.1.2 loc索引器

a. 字串切片,包含兩個端點,端點不唯一則報錯

b. DataFrame整數切片,包含兩個端點且不能重複

c. 函式無法返回切片形式,要用slice物件進行包裝

5.1.3 iloc索引器(位置篩選)

a. 切片不包含結束端點

b. 傳入切片為返回值的函式,使用slice物件包裝

5.2 多級索引切片

5.2.1 與單層索引的區別

單層索引中,切片端點元素唯一即可切片;

多級索引中,切片前必須排序

5.2.2 IndexSlice物件切片

IndexSlice可以分層切片,將切片與布林列表混用。(定義:idx = pd.IndexSlice

a. loc[idx[*,*]]型,不能分層切片

b. loc[idx[*,*],idx[*,*]]型,可以多層分別切片,但不支援使用函式

參考:

joyful pandas教程 https://github.com/datawhalechina/joyful-pandas