一、什麼是dataframereindex
在pandas這個數據分析庫中,dataframereindex方法可以重建索引(index),即返回一個經過重新索引後的Dataframe。這個方法是pandas中最常用的功能之一,它既可以用來修改行索引,也可以用來修改列索引。另外,該方法也可以用來重新排序原有的索引,或者重新設置索引的值。
import pandas as pd
df = pd.DataFrame({'s1': [1, 2, 3], 's2': [4, 5, 6], 's3': [7, 8, 9]})
df1 = df.reindex([2,1,0])
print(df1)
輸出:
s1 s2 s3
2 3 6 9
1 2 5 8
0 1 4 7
二、常見的參數含義
在使用dataframereindex方法時,我們常用到的參數有三個:index、columns、fill_value。
1.index:指定要使用的索引值,如果某個索引不存在,會添加一行或者一列。如果某些原有索引在新索引中不存在,則相應行(或列)會被刪除。
df2 = pd.DataFrame({'s1': ['a', 'b', 'c'], 's2': ['d', 'e', 'f']})
df3 = df2.reindex(index=[0, 1, 2, 3], fill_value='default')
print(df3)
輸出:
s1 s2
0 a d
1 b e
2 c f
3 default default
2. columns:指定要使用的列索引值,如果某個列索引不存在,會添加一列或者一行。如果某些原有索引在新索引中不存在,則相應列(或行)會被刪除。
df4 = pd.DataFrame({'s1': ['a', 'b', 'c'], 's2': ['d', 'e', 'f']})
df5 = df4.reindex(columns=['s1', 's2', 's3'], fill_value='default')
print(df5)
輸出:
s1 s2 s3
0 a d default
1 b e default
2 c f default
3. fill_value:缺失值的填充值,使用該參數後,會將所有缺失值填充為fill_value中指定的值。
df6 = pd.DataFrame({'A': [1, 2], 'B': [3, 4], 'C': [5, 6]})
print(df6.reindex([0,1,2], fill_value=0))
輸出:
A B C
0 1 3 5
1 2 4 6
2 0 0 0
三、dataframereindex的附加功能
除了基本的用法外,dataframereindex方法還擁有一些附加的功能,下面將分別對這些功能進行描述。
1. 支持在指定軸上插入新的標籤
在原始數據中,如果想要添加新的標籤,只需要在傳給dataframereindex函數的列表中直接添加即可。
df7 = pd.DataFrame({'s1': [1, 2, 3], 's2': [4, 5, 6], 's3': [7, 8, 9]})
df8 = df7.reindex(index=[0,1,2,3], columns=['s1', 's2', 's3', 's4'])
print(df8)
輸出:
s1 s2 s3 s4
0 1 4 7 NaN
1 2 5 8 NaN
2 3 6 9 NaN
3 NaN NaN NaN NaN
2. 支持對標籤進行刪除
如果想要刪除某些標籤,只需要將相應的標籤從傳給dataframereindex函數的列表中刪除即可。
df9 = pd.DataFrame({'s1': [1, 2, 3], 's2': [4, 5, 6], 's3': [7, 8, 9]})
df10 = df9.reindex(index=[0, 1], columns=['s1', 's2'])
print(df10)
輸出:
s1 s2
0 1 4
1 2 5
3. 可以設置插入位置
在dataframereindex方法中可以指定插入標籤的位置,這是通過使用method參數來實現的。如果不指定該參數,則默認使用ffill參數(前向填充)。
df11 = pd.DataFrame({'s1': [1, 2, 3], 's2': [4, 5, 6], 's3': [7, 8, 9]})
df12 = df11.reindex(index=[0,1,2,3], method='ffill')
print(df12)
輸出:
s1 s2 s3
0 1 4 7
1 2 5 8
2 3 6 9
3 3 6 9
method還可以使用bfill參數,這個參數會從後向前填充缺失值。
4. 可以進行索引排序
dataframereindex方法還支持對索引進行排序。通過傳入sort_parameter參數可以實現。
df13 = pd.DataFrame({'s1': [1, 2, 3], 's2': [4, 5, 6], 's3': [7, 8, 9]})
df14 = df13.reindex(index=[2, 1, 0], sort_remaining=True)
print(df14)
輸出:
s1 s2 s3
0 1 4 7
1 2 5 8
2 3 6 9
四、總結
dataframereindex方法是pandas庫中最常用的功能之一,它可以重建索引,修改行索引、列索引、排序原有的索引,或者重新設置索引的值。除了基本的索引重建外,我們還可以利用dataframereindex方法支持的一些附加功能,如在指定軸上插入新的標籤、刪除標籤、設置插入位置以及進行索引排序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/183439.html
微信掃一掃
支付寶掃一掃