pandas重新索引

pandas之重新索引

pandas有一個(gè)很重要的方法是reindex,它的作用是創(chuàng)建一個(gè)適應(yīng)新索引的新對象注竿。

對于Series

直接上代碼:

import numpy as np

from pandas import Series,DataFrame

ser = Series([-2.4, -1.4, 1.8, 2.8],['z','c','x','d'])

ser
Out[6]: 
z   -2.4
c   -1.4
x    1.8
d    2.8
dtype: float64

ser.reindex(['a','z','x','b','c','d'])
Out[8]: 
a    NaN
z   -2.4
x    1.8
b    NaN
c   -1.4
d    2.8
dtype: float64

可以觀察到兼吓,reindex根據(jù)索引進(jìn)行了重排括尸,并且攒钳,如果所以不存在的話就會(huì)引入缺失值NaN她混。

我們可以指定索引所指向的值联贩,使用fill_value參數(shù):

ser.reindex(['a','z','x','b','c','d'],fill_value = 0)
Out[10]: 
a    0.0
z   -2.4
x    1.8
b    0.0
c   -1.4
d    2.8
dtype: float64

而對于一些有序數(shù)據(jù)漫仆,我們有事可能需要進(jìn)行插值,進(jìn)而補(bǔ)充確實(shí)數(shù)據(jù)泪幌,這樣的話盲厌,我們可以使用method參數(shù):

ser1 = Series(['Y','P','Z','X'],index = [0, 2, 5, 7])

ser1
Out[12]: 
0    Y
2    P
5    Z
7    X
dtype: object

ser1.reindex(range(8),method='ffill')#前向填充
Out[13]: 
0    Y
1    Y
2    P
3    P
4    P
5    Z
6    Z
7    X
dtype: object

ser1.reindex(range(8),method='bfill')#后向填充
Out[14]: 
0    Y
1    P
2    P
3    Z
4    Z
5    Z
6    X
7    X
dtype: object

可以注意到:

**ffill就是把前面的值向后填充,另外參數(shù)pad的作用與其一致祸泪。

bfill的作用是把后面的值向前填充吗浩,參數(shù)backfill的作用與其一致。**

對于DataFrame

reindex可以修改行和列的索引没隘。如果只傳入一個(gè)序列懂扼,就會(huì)重新索引行

不知道,你有沒有注意到,在pandas中如果只傳入一個(gè)序列阀湿,或者索引赶熟,一般默認(rèn)是修改行,或者索引行陷嘴。

frame = DataFrame(np.arange(9).reshape(3,3),index = ['x','y','z'],columns=['BJ','TJ','HEB'])

frame
Out[18]: 
   BJ  TJ  HEB
x   0   1    2
y   3   4    5
z   6   7    8

frame1 = frame.reindex(['x','z','s','y'])#重新索引行

frame1
Out[20]: 
    BJ   TJ  HEB
x  0.0  1.0  2.0
z  6.0  7.0  8.0
s  NaN  NaN  NaN
y  3.0  4.0  5.0

frame.reindex(columns=['TJ','SJZ','BJ','HEB'])#重新索引列
Out[21]: 
   TJ  SJZ  BJ  HEB
x   1  NaN   0    2
y   4  NaN   3    5
z   7  NaN   6    8

frame.reindex(index=['a','b','c','d'],method = 'ffill',columns=['BJ','SD','HEB','TJ'])#重新索引列和行映砖,并插值
Out[34]: 
   BJ  SD  HEB  TJ
a   0 NaN    2   1
b   0 NaN    2   1
c   3 NaN    5   4
d   6 NaN    8   7

可以注意到,進(jìn)行行列一起索引的時(shí)候灾挨,行也必須指定參數(shù)index邑退,而插值的結(jié)果,只會(huì)沿著行應(yīng)用劳澄。

但是沒有想明白地技,為什么會(huì)出現(xiàn)以下的狀況:


frame.reindex(index = ['x','z','s','y'],method = 'ffill',columns=['TJ','SJZ','BJ','HEB'])
Out[23]: 
    TJ  SJZ   BJ  HEB
x  1.0  NaN  0.0  2.0
z  7.0  NaN  6.0  8.0
s  NaN  NaN  NaN  NaN
y  4.0  NaN  3.0  5.0

frame.reindex(index = ['x','z','s','y'],method = 'ffill',columns=['TJ','SJZ','BJ'])
Out[24]: 
    TJ  SJZ   BJ
x  1.0  NaN  0.0
z  7.0  NaN  6.0
s  NaN  NaN  NaN
y  4.0  NaN  3.0

frame.reindex(index = ['x','z','s','y'],method = 'ffill')
Out[26]: 
    BJ   TJ  HEB
x  0.0  1.0  2.0
z  6.0  7.0  8.0
s  NaN  NaN  NaN
y  3.0  4.0  5.0

frame.reindex(index = ['x','z','s','y'],method = 'bfill')
Out[28]: 
   BJ  TJ  HEB
x   0   1    2
z   6   7    8
s   0   1    2
y   3   4    5

求解。

標(biāo)簽ix可以使重新索引變得很簡便秒拔,不需要指定index和columns參數(shù)莫矗。

frame.ix[['a','b','c','d'],['BJ','TJ','SD','HEB']]
Out[37]: 
    BJ   TJ  SD  HEB
a  0.0  1.0 NaN  2.0
b  NaN  NaN NaN  NaN
c  3.0  4.0 NaN  5.0
d  6.0  7.0 NaN  8.0

但是經(jīng)過試驗(yàn),好像reindex不指定也可以溯警,


frame.reindex(['a','b','c','d'],['BJ','TJ','SD','HEB'])
Out[35]: 
    BJ   TJ  SD  HEB
a  0.0  1.0 NaN  2.0
b  NaN  NaN NaN  NaN
c  3.0  4.0 NaN  5.0
d  6.0  7.0 NaN  8.0

但是趣苏,如果要進(jìn)行插值,就必須指定參數(shù)梯轻。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市尽棕,隨后出現(xiàn)的幾起案子喳挑,更是在濱河造成了極大的恐慌,老刑警劉巖滔悉,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伊诵,死亡現(xiàn)場離奇詭異,居然都是意外死亡回官,警方通過查閱死者的電腦和手機(jī)曹宴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歉提,“玉大人笛坦,你說我怎么就攤上這事√蓿” “怎么了版扩?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侄泽。 經(jīng)常有香客問我礁芦,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任柿扣,我火速辦了婚禮肖方,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘未状。我一直安慰自己俯画,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布娩践。 她就那樣靜靜地躺著活翩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翻伺。 梳的紋絲不亂的頭發(fā)上材泄,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音吨岭,去河邊找鬼拉宗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛辣辫,可吹牛的內(nèi)容都是我干的旦事。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼急灭,長吁一口氣:“原來是場噩夢啊……” “哼姐浮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起葬馋,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卖鲤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后畴嘶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛋逾,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年窗悯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了区匣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蒋院,死狀恐怖亏钩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悦污,我是刑警寧澤铸屉,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站切端,受9級特大地震影響彻坛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一昌屉、第九天 我趴在偏房一處隱蔽的房頂上張望钙蒙。 院中可真熱鬧,春花似錦间驮、人聲如沸躬厌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扛施。三九已至,卻和暖如春屹篓,著一層夾襖步出監(jiān)牢的瞬間疙渣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工堆巧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妄荔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓谍肤,卻偏偏與公主長得像啦租,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子荒揣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容