pandas索引介紹2 布林(邏輯)索引和混合索引

2021-08-09 03:43:10 字數 2986 閱讀 8604

本文為ipython下的md檔案直接匯入生成

import pandas as pd

import numpy as np

t_data

#這裡,我們首先來講解pandas中利用布林型別進行索引的方法
#篩選資料中survivied為1的所有記錄,即對行元素進行篩選
t_data.loc[t_data["survived"]==1,]

passengerid

survived

pclass

name

***agea2

11cumings, mrs. john bradley (florence briggs th…

female

38.0b3

13heikkinen, miss. laina

female

26.0c4

11futrelle, mrs. jacques heath (lily may peel)

female

35.0h9

13johnson, mrs. oscar w (elisabeth vilhelmina berg)

female

27.0i10

12nasser, mrs. nicholas (adele achem)

female

14.0

#上述命令中,通過t_data["survived"]這一簡單方法提取了"survived"這一列的資料,然後檢驗其是否大於一,

#由於是作用於對行的篩選,所以我們需要將這一布林向量放到行索引的位置上

#為了方便展示作用於列上的索引,我們建立如下資料
score=
pd_score=pd.dataframe(score)
pd_score.index=["math","chinese","english"]
pd_score

li ming

yin hong

zhang yan

math

7892

88chinese

9085

56english

8793

94

#篩選所有科目均大於80分的學生,此時是通過對相關行元素的判斷來達到篩選列的目的,

#因此,需要分為兩步,首先提出出相關行元素,進行判斷

#第二,將判斷的布林結果作用於列的篩選上

bool_index=(pd_score.loc["math"]>80)&(pd_score.loc["chinese"]>80)&(pd_score.loc["english"]>80)
bool_index
li ming false yin hong true zhang yan false dtype: bool
pd_score.loc[:,bool_index]

yin hong

math

92chinese

85english

93

#將上述兩步結合起來可寫成如下命令

#我們更換了一種對行的索引方式

pd_score.loc[:,(pd_score.iloc[0]>80)&(pd_score.iloc[1]>80)&(pd_score.iloc[2]>80)]

yin hong

math

92chinese

85english

93

pd_score

li ming

yin hong

zhang yan

math

7892

88chinese

9085

56english

8793

94

#接下來講解另一種索引的方法,前面我們提到過使用iloc和loc兩種方法分別通過下標索引和標籤索引

#這兩種方法的優點在於它將標籤和下標索引的兩種方式很好的進行了區分,但同樣地,如果我們想同時進行下標和標籤的索引,便行不通了

#事實上,pandas庫為我們還提供了另一種索引的方法ix,使用該方法便可以實現下標和標籤的混合索引,

#然而,當你匯入pandas庫,第一次使用該方法時,pandas可能會提醒你,該方法已經不建議採用,在後續版本中也可能會被捨棄掉

#ix方法不被建議採用的原因主要還是在於其將下標和標籤兩種索引方式混合起來,可能會造成意想不到的後果,例如如果你的標籤是數字,

#那麼ix方法是很難區分你的索引目的是下標索引還是標籤索引,而是用iloc或loc方法則無須擔心,不過,在確認不會出錯的情況下,

#ix方法還是能夠在一定程度上方便我們的索引,在沒被棄用之前,還是 可以體驗一把的!^_^

pd_score.ix[:,[1]]

yin hong

math

92chinese

85english

93

pd_score.ix[0:2,"li ming"]
math 78 chinese 90 name: li ming, dtype: int64
pd_score.ix[["math"],0:2]

li ming

yin hong

math

7892

pandas學習筆記(2) 多層索引

用from product series np.random.randint 0,150,size 8 index pd.multiindex.from product a b c d 期中 期末 out 23 a 期中 51 期末 133 b 期中 132 期末 115 c 期中 65 期末 91...

pandas 2索引和選擇資料

對於一種資料結構,最基本的操作就應該是增刪改查了。行選擇和列選擇有許多方法,很容易記混,常用的要記住。主要方法有三種 iloc,loc,df.loc index1 index2 price df.iloc a b price 123 4567 s.sample frac 0.5 引數 預設選擇行,n...

mysql高階2 索引介紹

官方定義 索引 index 是幫助mysql高效獲取資料的資料結構。理解為索引的本質 索引是資料結構。索引目的是提高查詢效率,可以模擬字典 無序,是鍵和值一一對應 感覺不太對 可以簡單理解為 排好序的快速查詢資料結構 用多路搜尋樹 如二叉樹 的結構來查詢資料,稱為b tree索引 刪除資料只有邏輯上...