pandas.DataFrame.reindex_like#
- DataFrame.reindex_like(other, method=None, copy=<no_default>, limit=None, tolerance=None)[源代码]#
返回一个具有与另一个对象匹配的索引的对象。
使对象在所有轴上与另一个对象具有相同的索引。可选的填充逻辑,在原始索引中没有值的位置放置 NaN。除非新的索引等同于当前索引且 copy=False,否则会生成新对象。
- 参数:
- other相同数据类型的对象
其行和列索引用于定义此对象的新索引。
- method{None, ‘backfill’/’bfill’, ‘pad’/’ffill’, ‘nearest’}
用于填充重新索引的 DataFrame 中的空缺的方法。请注意:这仅适用于索引单调递增/递减的 DataFrame/Series。
自 3.0.0 版本起已弃用。
None (默认): 不填充空缺
pad / ffill:将最后一个有效观测值向前传播到下一个有效值
backfill / bfill:使用下一个有效观测值填充空缺
nearest:使用最近的有效观测值填充空缺。
- copybool,默认值 False
此关键字已被忽略;更改其值将不会影响方法。
已弃用,版本 3.0.0: 此关键字已被忽略,并将在 pandas 4.0 中删除。自 pandas 3.0 起,此方法始终返回一个新对象,并使用延迟复制机制,该机制会推迟复制直到必要时(写时复制)。有关更多详细信息,请参阅关于写时复制的用户指南。
- limitint, default None
对于不精确匹配,填充连续标签的最大数量。
- tolerance可选
对于不精确匹配,原始标签和新标签之间的最大距离。匹配位置的索引值必须满足方程
abs(index[indexer] - target) <= tolerance。容差可以是标量值,它将相同的容差应用于所有值,也可以是类列表,它为每个元素应用可变容差。类列表包括列表、元组、数组、Series,并且必须与索引的大小相同,其 dtype 必须与索引的类型完全匹配。
- 返回:
- Series 或 DataFrame
与调用者类型相同,但轴上的索引已更改。
另请参阅
DataFrame.set_index设置行标签。
DataFrame.reset_index删除行标签或将其移至新列。
DataFrame.reindex更改为新索引或扩展索引。
注意
与调用
.reindex(index=other.index, columns=other.columns,...)相同。示例
>>> df1 = pd.DataFrame( ... [ ... [24.3, 75.7, "high"], ... [31, 87.8, "high"], ... [22, 71.6, "medium"], ... [35, 95, "medium"], ... ], ... columns=["temp_celsius", "temp_fahrenheit", "windspeed"], ... index=pd.date_range(start="2014-02-12", end="2014-02-15", freq="D"), ... )
>>> df1 temp_celsius temp_fahrenheit windspeed 2014-02-12 24.3 75.7 high 2014-02-13 31.0 87.8 high 2014-02-14 22.0 71.6 medium 2014-02-15 35.0 95.0 medium
>>> df2 = pd.DataFrame( ... [[28, "low"], [30, "low"], [35.1, "medium"]], ... columns=["temp_celsius", "windspeed"], ... index=pd.DatetimeIndex(["2014-02-12", "2014-02-13", "2014-02-15"]), ... )
>>> df2 temp_celsius windspeed 2014-02-12 28.0 low 2014-02-13 30.0 low 2014-02-15 35.1 medium
>>> df2.reindex_like(df1) temp_celsius temp_fahrenheit windspeed 2014-02-12 28.0 NaN low 2014-02-13 30.0 NaN low 2014-02-14 NaN NaN NaN 2014-02-15 35.1 NaN medium