Pandas DataFrame DataFrame.reindex() 函式
Minahil Noor
2023年1月30日
-
pandas.DataFrame.reindex()
語法 -
示例程式碼:
DataFrame.reindex()
-
示例程式碼:
DataFrame.reindex()
來重新索引列 -
示例程式碼:
DataFrame.reindex()
用fill_value
填充缺失值的方法 -
示例程式碼:
DataFrame.reindex()
使用method
引數來填充缺失的值
Python Pandas DataFrame.reindex()
函式改變一個 DataFrame
的索引。它改變了指定軸上的索引。新的索引不包含值。它提供了可選的引數來填充這些值。
pandas.DataFrame.reindex()
語法
DataFrame.dropna(
labels, index, columns, axis, method, copy, level, fill_value, limit, tolerance
)
引數
labels |
它是一個類似於陣列的結構,包含新索引的名稱 |
index, columns |
它是一個類似於陣列的結構,包含新索引的名稱。應使用關鍵字 index 或 columns 來指定 |
axis |
它是一個整數或字串。它告訴目標軸的行或列。它可以是 0 或 index ,1 或 columns |
method |
這個引數指定了在重新索引的 DataFrame 中填充缺失值的方法。它有四種可能的方法: None 、backfill /bfill 、pad /ffill 、pad /ffill 。None , backfill /bfill , pad /ffill , nearest . 它只適用於我們的 DataFrame 或 Series 有一個索引遞增或遞減的序列 |
copy |
布林值。預設情況下,它是 True 。它返回一個新物件 |
level |
它是一個整數或名稱。它匹配傳遞的多索引級別的索引值 |
fill_value |
它有一個標量值。它是填補缺失值的值 |
limit |
它是一個整數。它表示連續元素的極限,同時填充缺失值 |
tolerance |
在不完全匹配的情況下,它可以顯示原始標籤和新標籤之間的差異 |
返回值
它返回一個帶有改變過的索引的 DataFrame
。
示例程式碼:DataFrame.reindex()
預設情況下,軸是 0
即行,所以行將被重新索引。
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
print(dataframe)
例子 DataFrame 如下。
Attendance Name Obtained Marks
0 60 Olivia 56
1 100 John 75
2 80 Laura 82
3 75 Ben 64
4 95 Kevin 67
Python 中的索引從 0 開始,我們將重新索引我們的 DataFrame
,新的索引將從 1 開始。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.reindex([1, 2, 3, 4, 5])
print(dataframe1)
輸出:
Attendance Name Obtained Marks
1 100.0 John 75.0
2 80.0 Laura 82.0
3 75.0 Ben 64.0
4 95.0 Kevin 67.0
5 NaN NaN NaN
這裡,5
是一個新的索引。所以,新索引的值是 NaN
。
示例程式碼:DataFrame.reindex()
來重新索引列
有兩種方法可以重新索引列。一種是用列關鍵字指定標籤,另一種是使用軸引數。比較好的一種是用列關鍵字指定標籤。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.reindex(columns=["Presents", "Name", "Marks"])
print(dataframe1)
輸出:
Presents Name Marks
0 NaN Olivia NaN
1 NaN John NaN
2 NaN Laura NaN
3 NaN Ben NaN
4 NaN Kevin NaN
舊的索引用舊的值分配。新索引的值為 NaN
。
我們也可以用 axis
引數重新索引列。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.reindex(["Presents", "Name", "Marks"], axis="columns")
print(dataframe1)
示例程式碼:DataFrame.reindex()
用 fill_value
填充缺失值的方法
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.reindex([1, 2, 3, 4, 5], fill_value=0)
print(dataframe1)
輸出:
Attendance Name Obtained Marks
1 100 John 75
2 80 Laura 82
3 75 Ben 64
4 95 Kevin 67
5 0 0 0
缺失的值現在用 0
填充。
示例程式碼:DataFrame.reindex()
使用 method
引數來填充缺失的值
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.reindex([1, 2, 3, 4, 5], method="ffill")
print(dataframe1)
輸出:
Attendance Name Obtained Marks
1 100 John 75
2 80 Laura 82
3 75 Ben 64
4 95 Kevin 67
5 95 Kevin 67
方法 ffill
用最後一個可用值填補了前向缺失值。