Python Pandas dataframe.reindex_axis()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas dataframe.reindex_axis() 函数 使输入对象符合新索引。该函数在前一个索引中没有值的位置填充NaN值。它还提供了一种方法来填补数据框架中的缺失值。除非新的索引等同于当前的索引,并且copy=False,否则会产生一个新的对象。
语法: DataFrame.reindex_axis(labels, axis=0, method=None, level=None, copy=True, limit=None, fill_value=nan)
参数 :
labels :新的标签/索引要符合。最好是一个索引对象,以避免重复的数据
axis: {0或’索引’,1或’列’}
method: {None, ‘backfill’/’bfill’, ‘pad’/’ffill’, ‘nearest’}, optional
copy : 返回一个新的对象,即使通过的索引是相同的。
level :跨层广播,与通过的MultiIndex层上的索引值相匹配。
limit :向前或向后填充的最大连续元素数
tolerance :不精确匹配的原始和新标签之间的最大距离。匹配位置的索引值最能满足方程式abs(index[indexer] – target) <= tolerance。
返回 : reindexed : DataFrame
示例#1:使用reindex_axis()函数在索引axis上重新索引数据框架。默认情况下,新的索引中的值如果在数据框架中没有相应的记录,则被分配为NaN。
注意:我们可以使用’fill’方法来填补缺失的数值。
# 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 =["A1", "A2", "A3", "A4", "A5"])
# Print the dataframe
df
让我们使用dataframe.reindex_axis()函数,在索引axis上重新索引数据框架。
# reindexing with new index values
df.reindex_axis(["A1", "A2", "A4", "A7", "A8"], axis = 0)
输出 :
注意输出结果,新的索引被填充了NaN值,我们可以使用’fill’方法填补缺失的值。
# filling the missing values using ffill method
df.reindex_axis(["A1", "A2", "A4", "A7", "A8"],
axis = 0, method ='ffill')
输出 :
注意在输出中,新的索引已经使用 “A5 “行被填充。
示例#2:使用reindex_axis()函数对列axis进行重新索引。
# 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 =["A1", "A2", "A3", "A4", "A5"])
# reindexing the column axis with
# old and new index values
df.reindex_axis(["A", "B", "D", "E"], axis = 1)
输出 :
注意,我们在重新索引后的新列中出现了NaN值,我们可以在重新索引时处理这些缺失的值。通过使用fill方法,我们可以向前填充缺失的值。
# reindex the columns
# we fill the missing values using ffill method
df.reindex_axis(["A", "B", "D", "E"], axis = 1, method ='ffill')
输出 :