DataFrame.reindex_like(self: ~FrameOrSeries, other, method: Union[str, NoneType] = None, copy: bool = True, limit=None, tolerance=None) → ~FrameOrSeries [source]
返回具有匹配索引的对象作为其他对象。
使对象在所有轴上都具有相同的索引。可选的填充逻辑,将NaN
放在上一个索引中没有值的位置。除非新索引等于当前索引并且copy=False
,否则将生成一个新对象。
参数: | other:相同数据类型的 它的行和列索引用于定义此对象的新索引。 method:
方法,用于填充重新索引的数据格式中的漏洞。 请注意:这只适用于索引为单调递增/递减的 1)None (default): 不填补空白。 2)pad / ffill: 将上一个有效观察值传播到下一个有效观察值。 3)backfill / bfill: 使用下一个有效观察值来填补空白。 4)nearest: 使用最近的有效观测值来填补空白。 copy: 即使传递的索引相同,也返回一个新对象。 limit: 填写不完全匹配的连续标签的最大数量。 tolerance:可选 最大距离之间的原始和新标签不准确的匹配。 匹配位置的索引值最满足等式
tolerance可以是标量值,它对所有值应用相同的tolerance, 也可以是类似于列表的值,它对每个元素应用可变tolerance。 类列表包括列表、元组、数组、序列,并且必须与索引大小相同, 其dtype必须与索引的类型完全匹配。 0.21.0版本中新增内容:(list-like tolerance) |
返回值: | Series 或 DataFrame: 与调用者相同的类型,但每个轴上的索引均已更改。 |
Notes
与调用.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