Python Pandas之索引index相關函式

2021-10-24 09:49:40 字數 2206 閱讀 6425

本文介紹對索引進行 重新排序reindex()以及 更換索引set_index()時的用法,需要注意的是索引物件是無法進行修改的。

重新索引 .reindex()

重新索引不是給索引重新命名,而是對索引重新排序,如果某個索引值不存在則引入缺失值。

reindex函式引數型別

使用說明

index

用於索引的新序列

method

填充缺失值方法,ffill / bfill

fill_value

缺失值替代值

limit

最大填充

例子:

df=pd.dataframe(np.arange(9)

.reshape(3,

3),index=

['a'

,'c'

,'d'

],columns=

['name'

,'id'

,'***'])

df>>

>

>name id ***

a 01

2c 345

d 67

8df2=df.reindex(

['a'

,'b'

,'c'

,'d'

],method=

'ffill'

)df2

>>

>

> name id ***

a 01

2b 012

c 34

5d 6

78

更換索引 .set_index()

在dataframe資料中,如果不希望使用預設行索引,可以在建立資料時通過index引數來設定行索引。

如果需要將某列資料作為行索引,這時需要用到 set_index()方法,與該方法相反的方法是 reset_index()。

例子:

#更換索引(區別與更新索引)

data=

datadf=pd.dataframe(data)

datadf

>>

>

> name *** year city

0 張三 female 2001 北京

1 李四 female 2001 上海

2 王五 male 2003 廣州

3 小明 male 2002 北京

datadf.set_index(

['name'

],inplace=

true

)datadf

>>

>

> *** year city

name

張三 female 2001 北京

李四 female 2001 上海

王五 male 2003 廣州

小明 male 2002 北京

datadf.reset_index(inplace=

true

)datadf

>>

>

>name *** year city

0 張三 female 2001 北京

1 李四 female 2001 上海

2 王五 male 2003 廣州

3 小明 male 2002 北京

資料排序後,原資料的索引可以通過drop引數刪除。

#排序時,索引變化

datadf2=datadf.sort_values(

'year'

)datadf2

>>

>

>name *** year city

0 張三 female 2001 北京

1 李四 female 2001 上海

3 小明 male 2002 北京

2 王五 male 2003 廣州

datadf3=datadf2.reset_index(drop=

true

)datadf3

>>

>

> name *** year city

0 張三 female 2001 北京

1 李四 female 2001 上海

2 小明 male 2002 北京

3 王五 male 2003 廣州

Python pandas,建立Series型別

numpy只能處理數值型別的資料。pandas除了可以處理數值型別外,還可以處理非數值型別的資料 例如 字串 時間序列等 pandas常用的資料型別 series 一維,帶標籤的陣列,對應資料庫中的一條記錄 dataframe 二維,series容器,對應資料庫中的表 demo.py series的...

python pandas使用記錄

在使用numpy中array格式的矩陣時,我們通常使用如a 2 4,5 10 獲取陣列中一部分資料,但是dataframe結構的陣列就不能這麼寫,可以使用iloc方法,即index locate,另外有個相似的方法loc,這個方法是通過column名字進行資料定位的 import pandas as...

Python pandas總結未完

obj.index obj.values obj4.name population obj4.index.name state obj.index bob steve jeff ryan data frame pd.dataframe data frame2 pd.dataframe data,co...