Python|熊猫 dataframe.reindex_like()
Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas就是其中之一,它使导入和分析数据变得更加容易。
Pandas dataframe.reindex_like()
函数将具有匹配索引的对象返回给我自己。任何不匹配的索引都用NaN
值填充。
Syntax:
Syntax : DataFrame.reindex_like(other, method=None, copy=True, limit=None, tolerance=None)
Parameters :
other : Object
method : string or None
copy : boolean, default True
limit : Maximum number of consecutive labels to fill for inexact matches.
tolerance : Maximum distance between labels of the other object and this object for inexact matches. Can be list-like.
Returns : reindexed : same as input
示例 #1:使用reindex_like()
函数查找给定两个数据帧之间的匹配索引。
注意:我们可以使用任何填充方法(例如'ffill'、'bfill')来填充缺失值。
# 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]},
index =["A1", "A2", "A3", "A4", "A5"])
# Creating the second dataframe
df2 = pd.DataFrame({"A":[10, 11, 7, 8, 5],
"B":[21, 5, 32, 4, 6],
"C":[11, 21, 23, 7, 9],
"D":[1, 5, 3, 8, 6]},
index =["A1", "A3", "A4", "A7", "A8"])
# Print the first dataframe
df1
# Print the second dataframe
df2
让我们使用dataframe.reindex_like()
函数来查找匹配的索引。
# find matching indexes
df1.reindex_like(df2)
输出 :
注意输出,不匹配的索引填充了NaN
值,我们可以使用 'ffill' 方法填充缺失的值。
# filling the missing values using ffill method
df1.reindex_like(df2, method ='ffill')
输出 :
请注意,在输出中,新索引已使用“A5”行填充。示例 #2:使用reindex_like()
函数匹配两个数据帧的索引,限制填充缺失值。
# 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]},
index =["A1", "A2", "A3", "A4", "A5"])
# Creating the second dataframe
df2 = pd.DataFrame({"A":[10, 11, 7, 8, 5],
"B":[21, 5, 32, 4, 6],
"F":[11, 21, 23, 7, 9],
"K":[1, 5, 3, 8, 6]},
index =["A1", "A2", "A3", "A4", "A7"])
# matching the indexes
df1.reindex_like(df2)
输出 :
注意输出,不匹配的索引填充了NaN
值,我们可以使用 'ffill' 方法填充缺失的值。我们还限制了可以使用 limit 参数填充的连续不匹配索引的数量。
# match the indexes
# fill the unmatched index using 'ffill' method
# maximum consecutive unmatched indexes to be filled is 1
df.reindex_like(df1, method ='ffill', limit = 1)
输出 :