Pandas詳解八之ReIndex重新索引

約定:
import pandas as pd
import numpy as np

ReIndex重新索引

reindex()是pandas對象的一個重要方法,其作用是創建一個新索引的新對象。

一、對Series對象重新索引

se1=pd.Series([1,7,3,9],index=['d','c','a','f'])
se1

代碼結果:

d    1
c    7
a    3
f    9
dtype: int64
  • 調用reindex將會重新排序,缺失值則用NaN填補。
se2=se1.reindex(['a','b','c','d','e','f'])
se2

代碼結果:

a    3.0
b    NaN
c    7.0
d    1.0
e    NaN
f    9.0
dtype: float64
  • 傳入method=” “重新索引時選擇插值處理方式:

method=’ffill’或’pad 前向填充

method=’bfill’或’backfill 後向填充

se3=pd.Series(['blue','red','black'],index=[0,2,4])
se4=se3.reindex(range(6),method='ffill')
se4

代碼結果:

0     blue
1     blue
2      red
3      red
4    black
5    black
dtype: object

二、對DataFrame對象重新索引

對於DataFrame對象,reindex能修改行索引和列索引。

df1=pd.DataFrame(np.arange(9).reshape(3,3),index=['a','c','d'],columns=['one','two','four'])
df1
代碼結果:
one two four
a 0 1 2
c 3 4 5
d 6 7 8
  • 默認對行索引重新排序

只傳入一個序列不能重新排序列索引

df1.reindex(['a','b','c','d'])
代碼結果:
one two four
a 0.0 1.0 2.0
b NaN NaN NaN
c 3.0 4.0 5.0
d 6.0 7.0 8.0
df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'])
代碼結果:
one two three four
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
  • 傳入fill_value=n用n代替缺失值:
df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'],fill_value=100)
代碼結果:
one two three four
a 0 1 100 2
b 100 100 100 100
c 3 4 100 5
d 6 7 100 8

謝謝大家的瀏覽,
希望我的努力能幫助到您,
共勉!

發佈了48 篇原創文章 · 獲贊 181 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章