pandas對象的reindex方法以及插值問題

1、調(diào)用reindex方法將會根據(jù)新索引進(jìn)行重排。如果某個索引值(對應(yīng)索引的值)當(dāng)前不存在,就引入缺失值,比如:

>> obj = Series([4.5,7,-7,4.3],index = ['d','b','a','c'])
>> obj 
d  4.5
b  7
a  -7
c  4.3
>> obj.reindex(['a','b','c','d','e'])
a  -7
b  7
c  4.3
d  4.5
e  NaN   #索引值不存在引入索引值,not a number
>> obj.reindex(['a','b','c','d','e'],fill_value=0) #索引值不存在時進(jìn)行插值處理

2、reindex方法中的method選項也可以做一些插值處理

>> obj2 = Series(['blue','purple','yellow'], index = ['0','2','4'])
>> obj2.reindex(range(6),method = 'ffill') #ffill是前向值填充,即讓缺失值和前一項相同來填充,bfill是后向值填充
0  blue
1  blue
2  purple
3  purple
4  yellow
5  yellow

3、對于DataFrame,reindex可以修改行索引、列或者兩個都修改。

>> frame = DataFrame(np.arange(9).reshape(3,3),index=['a','b','c'],columns=['him','her','it'])
    him  her  it
a   0     1     2
b   3     4     5
c   6     7     8
>>  frame.reindex(['a','b','c','d'])
    him  her  it
a   0     1     2
b   3     4     5
c   6     7     8
d  NaN  NaN  NaN  
### 使用columns關(guān)鍵字即可重新索引列
>> states = ['him','her','them']
>> frame.reindex(columns = states)
    him  her  them  
a   0     1     NaN
b   3     4     NaN
c   6     7     NaN
### 也可以同時對行和列進(jìn)行重新索引,而插值只能按行應(yīng)用(即0軸)
>> frame.reindex(index = ['a','b','c','d'],method = 'ffill',columns = states)
    him  her  them
a   0     1     NaN  
b   3     4     NaN  
c   6     7     NaN  
d   6     7     NaN  
###利用ix的標(biāo)簽索引功能,重新索引任務(wù)可以變得很簡潔
>> frame.ix[['a','b','c','d'],states]
    him  her  them
a   0     1     NaN  
b   3     4     NaN  
c   6     7     NaN  
d  NaN    NaN   NaN
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容