maxframe.dataframe.DataFrame.reindex_like#

DataFrame.reindex_like(other, method=None, copy=True, limit=None, tolerance=None)#

返回一个与另一个对象具有匹配索引的对象。

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

参数:
  • other (Object of the same data type) -- 其行和列索引用于定义此对象的新索引。

  • method ({None, 'backfill'/'bfill', 'pad'/'ffill', 'nearest'}) -- 用于在重新索引的 DataFrame 中填充空洞的方法。请注意:这仅适用于具有单调递增/递减索引的 DataFrames/Series。 * None(默认):不填充空隙 * pad / ffill:将最后一个有效观测值传播到下一个有效值 * backfill / bfill:使用下一个有效观测值填充空隙 * nearest:使用最近的有效观测值填充空隙。

  • copy (bool, default True) -- 返回一个新对象,即使传递的索引相同。

  • limit (int, default None) -- 不精确匹配时要填充的最大连续标签数。

  • tolerance (optional) -- 不精确匹配时原始标签和新标签之间的最大距离。索引在匹配位置的值必须满足方程 abs(index[indexer] - target) <= tolerance。容差可以是标量值,适用于所有值,也可以是类列表,对每个元素应用不同的容差。类列表包括 list、tuple、array、Series,并且必须与索引大小相同,其 dtype 必须与索引类型完全匹配。

返回:

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

返回类型:

Series or DataFrame

参见

DataFrame.set_index

设置行标签。

DataFrame.reset_index

删除行标签或将它们移动到新列。

DataFrame.reindex

更改为新索引或扩展索引。

备注

与调用 .reindex(index=other.index, columns=other.columns,...) 相同。

示例

>>> import pandas as pd
>>> import maxframe.dataframe as md
>>> df1 = md.DataFrame([[24.3, 75.7, 'high'],
...                     [31, 87.8, 'high'],
...                     [22, 71.6, 'medium'],
...                     [35, 95, 'medium']],
...                    columns=['temp_celsius', 'temp_fahrenheit',
...                             'windspeed'],
...                    index=md.date_range(start='2014-02-12',
...                                        end='2014-02-15', freq='D'))
>>> df1.execute()
           temp_celsius temp_fahrenheit windspeed
2014-02-12         24.3            75.7      high
2014-02-13           31            87.8      high
2014-02-14           22            71.6    medium
2014-02-15           35              95    medium
>>> df2 = md.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.execute()
            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).execute()
            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