利用Python進行資料分析 Pandas 4

2021-09-09 08:31:47 字數 3251 閱讀 2992

層次化索引(hierarchical indexing)是pandas的一項重要功能,它使你能在乙個軸上擁有多個(兩個以上)索引級別。抽象點說,它使你能以低維度形式處理高維度資料。我們先來看乙個簡單的例子:建立乙個series,並用乙個由列表或陣列組成的列表作為索引。

from pandas import series

import numpy as np

data = series(np.random.randn(10)

, index=[[

'a',

'a',

'a',

'b',

'b',

'b',

'c',

'c',

'd',

'd'],[

1,2,

3,1,

2,3,

1,2,

2,3]

])print

(data)

#output

a 1

1.1570652-

1.0750273-

0.800397

b 1

1.255714

20.0353683-

0.833140

c 1

-0.8810682-

0.943168

d 2

-0.2885073-

0.130029

dtype: float64

這就是帶有multiindex索引的series的格式化輸出形式。索引之間的「間隔」表示「直接使用上面的標籤」:

print

(data.index)

#output

multiindex(levels=[[

'a',

'b',

'c',

'd'],[

1,2,

3]],

labels=[[

0,0,

0,1,

1,1,

2,2,

3,3]

,[0,

1,2,

0,1,

2,0,

1,1,

2]])

對於乙個層次化索引的物件,選取資料子集的操作很簡單:

print

(data[

'a']

)print

(data[

'a':

'c']

)print

(data.ix[

['a'

,'c']]

)#output1-

1.3067842-

1.172157

30.773601

dtype: float64

a 1

-1.3067842-

1.172157

30.773601

b 1

-0.488442

21.447765

30.165453

c 1

0.9241122-

1.192613

dtype: float64

a 1

-1.3067842-

1.172157

30.773601

c 1

0.9241122-

1.192613

dtype: float64

有時甚至還可以在「內層」中進行選取:

in [

267]

: data[:,

2]out[

267]

:a 0.852965

b -2.304234

c -1.332610

d 1.074623

層次化索引在資料重塑和基於分組的操作(如透視表生成)中扮演著重要的角色。比如說,這段資料可以通過其unstack方法被重新安排到乙個dataframe中:

print

(data.unstack())

#output12

3a -

0.184154

1.268789

0.330326

b -0.313369

-0.103031

-1.093874

c 0.037298

-2.274778 nan

d nan -

2.220444

0.769246

unstack的逆運算是stack:

in [

269]

: data.unstack(

).stack(

)out[

269]

:a 1

0.670216

20.8529653-

0.955869

b 1-

0.0234932-

2.3042343-

0.652469

c 1-

1.2183022-

1.332610

d 21.074623

30.723642

對於乙個dataframe,每條軸都可以有分層索引:

frame = dataframe(np.arange(12)

.reshape((4

,3))

, index=[[

'a',

'a',

'b',

'b'],[

1,2,

1,2]

],columns=[[

'ohio'

,'ohio'

,'colorado'],

['green'

,'red'

,'green']]

)print

(frame)

print

(frame[

'ohio'])

#output

ohio colorado

green red green

a 1012

2345

b 1678

291011

green red

a 1012

34b 1672

910

暫略

利用python進行資料分析

目錄 10 minutes to pandas 翻譯 pandas中loc iloc ix的區別 pandas dropna函式 pandas中dataframe的stack unstack 和pivot 方法的對比 pandas中關於set index和reset index的用法 python匿...

利用python進行資料分析

利用python進行資料分析,需要了解一些基本的方法,比如掌握回歸分析的方法,通過線性回歸和邏輯回歸,其實你就可以對大多數的資料進行回歸分析,並得出相對精確地結論。這部分需要掌握的知識點如下 回歸分析 線性回歸 邏輯回歸 基本的分類演算法 決策樹 隨機森林 樸素貝葉斯 基本的聚類演算法 k mean...

《利用Python進行資料分析》筆記

之前的筆記一直記在我的印象筆記上,今天突然想到 不如直接記在部落格上,印象筆記只記錄生活上的事,這樣也分工明確一些。同時也能和大家分享,也許可以幫助到別人。由於這個學習筆記系列主要還是用於個人學習總結用,所以會比較凌亂,望大家理解!2017 9 23 p151 pd.dropna thresh 其中...