Pandas中DataFrame的基本操作之重新索引講解
Pandas DataFrame之重新索引
1.reindex可以對行和列索引
默認對行索引,加上關鍵字columns對列索引。
import pandas as pd data=[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]] df = pd.DataFrame(data,index=['d','b','c','a']) print(df)
默認對列索引:如果是新的索引名將會用NaN
df=df.reindex(['a','b','c','d','e']) print(df)
加上關鍵字columns對列重新索引:
df=df.reindex(columns=[2,1,3,4,0]) print(df)
2.reindex插值處理
對於index為有序的數據,我們有時候可能會進行一些插值處理,隻需要在reindex加上method參數即可,參數如下表
(圖片來源:截圖於 利用python進行數據分析 Wes McKinney 著)
例子:
import pandas as pd data=[[1,1,1,1],[2,2,2,2],[3,3,3,3]] df = pd.DataFrame(data,index=range(3)) print(df) df=df.reindex([0,1,2,3,4,5],method='ffill') print('--------------') print(df)
reindex函數的相關參數:
(圖片來源:截圖於 利用python進行數據分析 Wes McKinney 著)
Pandas DataFrame重置索引案例
import pandas as pd import numpy as np a=pd.DataFrame(np.random.randint(1,10,20).reshape(4,5)) print(a) 0 1 2 3 4 0 1 3 2 7 6 1 8 2 2 7 2 2 2 6 6 2 5 3 4 1 6 8 9 b=a.sort_values(by=4) print(b) 0 1 2 3 4 1 8 2 2 7 2 2 2 6 6 2 5 0 1 3 2 7 6 3 4 1 6 8 9 ### 重置索引:方法1 c=a.sort_values(by=4,ignore_index=True) print(c) 0 1 2 3 4 0 8 2 2 7 2 1 2 6 6 2 5 2 1 3 2 7 6 3 4 1 6 8 9 ### 重置索引:方法2 d=b.reset_index(drop=True) print(d) 0 1 2 3 4 0 8 2 2 7 2 1 2 6 6 2 5 2 1 3 2 7 6 3 4 1 6 8 9
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Pandas reindex重置索引的使用
- Python Pandas基礎操作詳解
- Python Pandas學習之Pandas數據結構詳解
- pandas刪除部分數據後重新生成索引的實現
- Pandas中時間序列的處理大全