40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
|
import numpy as np
|
||
|
import pytest
|
||
|
|
||
|
from pandas import DataFrame
|
||
|
import pandas._testing as tm
|
||
|
|
||
|
|
||
|
class TestDataFrameReindexLike:
|
||
|
def test_reindex_like(self, float_frame):
|
||
|
other = float_frame.reindex(index=float_frame.index[:10], columns=["C", "B"])
|
||
|
|
||
|
tm.assert_frame_equal(other, float_frame.reindex_like(other))
|
||
|
|
||
|
@pytest.mark.parametrize(
|
||
|
"method,expected_values",
|
||
|
[
|
||
|
("nearest", [0, 1, 1, 2]),
|
||
|
("pad", [np.nan, 0, 1, 1]),
|
||
|
("backfill", [0, 1, 2, 2]),
|
||
|
],
|
||
|
)
|
||
|
def test_reindex_like_methods(self, method, expected_values):
|
||
|
df = DataFrame({"x": list(range(5))})
|
||
|
|
||
|
result = df.reindex_like(df, method=method, tolerance=0)
|
||
|
tm.assert_frame_equal(df, result)
|
||
|
result = df.reindex_like(df, method=method, tolerance=[0, 0, 0, 0])
|
||
|
tm.assert_frame_equal(df, result)
|
||
|
|
||
|
def test_reindex_like_subclass(self):
|
||
|
# https://github.com/pandas-dev/pandas/issues/31925
|
||
|
class MyDataFrame(DataFrame):
|
||
|
pass
|
||
|
|
||
|
expected = DataFrame()
|
||
|
df = MyDataFrame()
|
||
|
result = df.reindex_like(expected)
|
||
|
|
||
|
tm.assert_frame_equal(result, expected)
|