python中reindex方法怎么用
生活随笔
收集整理的這篇文章主要介紹了
python中reindex方法怎么用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
小編給大家分享一下python中reindex方法怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
reindex更多的不是修改pandas對象的索引,而只是修改索引的順序,如果修改的索引不存在就會使用默認的None代替此行。且不會修改原數組,要修改需要使用賦值語句。
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'會被賦值NaN
內插或填充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: 前向(或進位)填充
bfill或backfill: 后向(或進位)填充
dataframe.reindex()
dataframe.reindex()可以改變(行)索引,列或兩者。當只傳入一個序列時,行被重新索引,一次可以對兩個重新索引,可是插值只在行側(0坐標軸)進行
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 |
列名不一樣的會被賦值nan
frame_na=frame.reindex(index=['a','b','c','d'],method='ffill',columns=states) printframe_na
c1b2c3 a0NaN2 b0NaN2 c3NaN5 d6NaN8
插值只在行側(0坐標軸)進行,但是我們可以在其之后,對nan值進行填充
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 |
總結
以上是生活随笔為你收集整理的python中reindex方法怎么用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux虚拟机中QEMU的使用方法
- 下一篇: SAP 增强篇 Method1 BAD