dataframe.reindex()


Pandas dataframe.reindex()函數使用可選的填充邏輯使DataFrame符合新索引,將NA /NaN放置在先前索引中沒有值的位置。除非新索引等於當前索引並且copy = False,否則將生成一個新對象。

用法: DataFrame.reindex(labels=None, index=None, columns=None, axis=None, method=None, copy=True, level=None, fill_value=nan, limit=None, tolerance=None)

 

參數:
labels:新標簽/索引使“ axis”指定的軸與之一致。
index, columns:要符合的新標簽/索引。最好是一個Index對象,以避免重復數據
axis:軸到目標。可以是軸名稱(“索引”,“列”)或數字(0、1)。
method:{None,“ backfill” /“ bfill”,“ pad” /“ ffill”,“ nearest”},可選
copy:即使傳遞的索引相同,也返回一個新對象
level:在一個級別上廣播,在傳遞的MultiIndex級別上匹配索引值
fill_value:在計算之前,請使用此值填充現有的缺失(NaN)值以及成功完成DataFrame對齊所需的任何新元素。如果兩個對應的DataFrame位置中的數據均丟失,則結果將丟失。
limit:向前或向后填充的最大連續元素數
tolerance:不完全匹配的原始標簽和新標簽之間的最大距離。匹配位置處的索引值最滿足方程abs(index [indexer]-target)

返回:重新索引:DataFrame

范例1:采用reindex()用於重新索引 DataFrame 的函數。默認情況下,新索引中在 DataFrame 中沒有對應記錄的值被分配為NaN。
注意:我們可以通過將值傳遞給關鍵字fill_value來填充缺失的值。

# importing pandas as pd import pandas as pd    # Creating the dataframe  df = pd.DataFrame({"A":[1, 5, 3, 4, 2],                    "B":[3, 2, 4, 3, 4],                    "C":[2, 2, 7, 3, 4],                    "D":[4, 3, 6, 12, 7]},                    index =["first", "second", "third", "fourth", "fifth"])    # Print the dataframe df
 

讓我們使用dataframe.reindex()重新索引 DataFrame 的功能

# reindexing with new index values df.reindex(["first", "dues", "trois", "fourth", "fifth"])
 

輸出:

注意輸出,新索引填充為NaN值,我們可以使用參數fill_value填寫缺少的值

# filling the missing values by 100 df.reindex(["first", "dues", "trois", "fourth", "fifth"], fill_value = 100)
 

輸出:


范例2:采用reindex()重新索引列軸的功能

# importing pandas as pd import pandas as pd    # Creating the first dataframe  df1 = pd.DataFrame({"A":[1, 5, 3, 4, 2],                     "B":[3, 2, 4, 3, 4],                     "C":[2, 2, 7, 3, 4],                     "D":[4, 3, 6, 12, 7]})    # reindexing the column axis with # old and new index values df.reindex(columns =["A", "B", "D", "E"])
 

輸出:

注意,我們有NaN重新編制索引后,新列中的值會發生變化,我們可以解決重新編制索引時遺漏的值。通過論證fill_value 功能。

# reindex the columns # fill the missing values by 25 df.reindex(columns =["A", "B", "D", "E"], fill_value = 25)
 

輸出:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM