pandas.DataFrame.reindex_like#

DataFrame.reindex_like(other, method=None, copy=<no_default>, limit=None, tolerance=None)[源代码]#

返回一个对象,其索引与其他对象匹配。

使对象在所有轴上的索引相同。可选的填充逻辑,在前一个索引中没有值的位置放置 NaN。除非新索引等同于当前索引且 copy=False,否则将生成一个新对象。

参数:
其他相同数据类型的对象

它的行和列索引用于定义此对象的新索引。

方法{None, ‘backfill’/’bfill’, ‘pad’/’ffill’, ‘nearest’}

用于填充重新索引的 DataFrame 中空洞的方法。请注意:这仅适用于具有单调递增/递减索引的 DataFrame/Series。

自 3.0.0 版本弃用.

  • None (默认): 不填充间隙

  • pad / ffill: 将最后一个有效观测值向前传播到下一个有效观测值

  • backfill / bfill: 使用下一个有效观测值来填补空白

  • nearest: 使用最近的有效观测值来填补空白。

复制bool, 默认为 False

即使传递的索引相同,也返回一个新对象。

备注

copy 关键字将在 pandas 3.0 中更改行为。写时复制 将默认启用,这意味着所有带有 copy 关键字的方法将使用延迟复制机制来推迟复制并忽略 copy 关键字。copy 关键字将在 pandas 的未来版本中被移除。

通过启用写时复制 pd.options.mode.copy_on_write = True,您已经可以获得未来的行为和改进。

自 3.0.0 版本弃用.

限制int, 默认为 None

最大连续标签数,用于不精确匹配的填充。

tolerance可选

不精确匹配中原始标签和新标签之间的最大距离。匹配位置的索引值必须满足方程 abs(index[indexer] - target) <= tolerance

容差可以是一个标量值,对所有值应用相同的容差,也可以是类列表的,对每个元素应用可变的容差。类列表的包括列表、元组、数组、Series,并且必须与索引的大小相同,其dtype必须与索引的类型完全匹配。

返回:
系列或数据框

与调用者类型相同,但在每个轴上具有更改的索引。

参见

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