python中reindex方法怎么用
生活随笔
收集整理的這篇文章主要介紹了
python中reindex方法怎么用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
小編給大家分享一下python中reindex方法怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
reindex更多的不是修改pandas對(duì)象的索引,而只是修改索引的順序,如果修改的索引不存在就會(huì)使用默認(rèn)的None代替此行。且不會(huì)修改原數(shù)組,要修改需要使用賦值語句。
series.reindex()
importpandasaspd importnumpyasnp obj=pd.Series(range(4),index=['d','b','a','c']) printobj
d0 b1 a2 c3 dtype:int64
printobj.reindex(['a','b','c','d','e']) 1 a2.0 b1.0 c3.0 d0.0 eNaN dtype:float64
多出的索引‘e'會(huì)被賦值NaN
內(nèi)插或填充method
obj1=pd.Series(range(3),index=['a','c','e']) printobj1.reindex(['a','b','c','d','e'],method='pad')
a0 b0 c1 d1 e2 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']) printframe
c1c2c3 a012 c345 d678
states=['c1','b2','c3'] frame.reindex(columns=states)
| c1 | b2 | c3 | |
|---|---|---|---|
| a | 0 | NaN | 2 |
| c | 3 | NaN | 5 |
| d | 6 | NaN | 8 |
列名不一樣的會(huì)被賦值nan
frame_na=frame.reindex(index=['a','b','c','d'],method='ffill',columns=states) printframe_na
c1b2c3 a0NaN2 b0NaN2 c3NaN5 d6NaN8
插值只在行側(cè)(0坐標(biāo)軸)進(jìn)行,但是我們可以在其之后,對(duì)nan值進(jìn)行填充
frame_na.fillna(method='ffill',axis=1)
| c1 | b2 | c3 | |
|---|---|---|---|
| a | 0.0 | 0.0 | 2.0 |
| b | 0.0 | 0.0 | 2.0 |
| c | 3.0 | 3.0 | 5.0 |
| d | 6.0 | 6.0 | 8.0 |
總結(jié)
以上是生活随笔為你收集整理的python中reindex方法怎么用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux虚拟机中QEMU的使用方法
- 下一篇: SAP 增强篇 Method1 BAD