本文介紹對索引進行 重新排序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...