溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中reindex方法怎么用

發(fā)布時(shí)間:2021-08-12 14:10:31 來源:億速云 閱讀:1573 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下python中reindex方法怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

reindex更多的不是修改pandas對(duì)象的索引,而只是修改索引的順序,如果修改的索引不存在就會(huì)使用默認(rèn)的None代替此行。且不會(huì)修改原數(shù)組,要修改需要使用賦值語句。

series.reindex()

import pandas as pd
import numpy as np
obj = pd.Series(range(4), index=['d', 'b', 'a', 'c'])
print obj
d 0
b 1
a 2
c 3
dtype: int64
print obj.reindex(['a', 'b', 'c', 'd', 'e'])
1
a 2.0
b 1.0
c 3.0
d 0.0
e NaN
dtype: float64

多出的索引‘e'會(huì)被賦值NaN

內(nèi)插或填充method

obj1=pd.Series(range(3), index=['a', 'c', 'e'])
print obj1.reindex(['a', 'b', 'c', 'd', 'e'],method='pad')
a 0
b 0
c 1
d 1
e 2
dtype: int64

ffill或pad: 前向(或進(jìn)位)填充

bfill或backfill: 后向(或進(jìn)位)填充

dataframe.reindex()

dataframe.reindex()可以改變(行)索引,列或兩者。當(dāng)只傳入一個(gè)序列時(shí),行被重新索引,一次可以對(duì)兩個(gè)重新索引,可是插值只在行側(cè)(0坐標(biāo)軸)進(jìn)行

frame = pd.DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'c', 'd'], columns=['c1', 'c2', 'c3'])
print frame
 c1 c2 c3
a 0 1 2
c 3 4 5
d 6 7 8
states = ['c1', 'b2', 'c3']
frame.reindex(columns=states)

c1b2c3
a0NaN2
c3NaN5
d6NaN8

列名不一樣的會(huì)被賦值nan

frame_na=frame.reindex(index=['a', 'b', 'c', 'd'], method='ffill', columns=states)
print frame_na
 c1 b2 c3
a 0 NaN 2
b 0 NaN 2
c 3 NaN 5
d 6 NaN 8

插值只在行側(cè)(0坐標(biāo)軸)進(jìn)行,但是我們可以在其之后,對(duì)nan值進(jìn)行填充

frame_na.fillna(method='ffill',axis=1)

c1b2c3
a0.00.02.0
b0.00.02.0
c3.03.05.0
d6.06.08.0

以上是“python中reindex方法怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI