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