1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import numpy as np
- import pytest
- import pandas as pd
- import pandas._testing as tm
- class TestCombine:
- @pytest.mark.parametrize(
- "data",
- [
- pd.date_range("2000", periods=4),
- pd.date_range("2000", periods=4, tz="US/Central"),
- pd.period_range("2000", periods=4),
- pd.timedelta_range(0, periods=4),
- ],
- )
- def test_combine_datetlike_udf(self, data):
- # GH#23079
- df = pd.DataFrame({"A": data})
- other = df.copy()
- df.iloc[1, 0] = None
- def combiner(a, b):
- return b
- result = df.combine(other, combiner)
- tm.assert_frame_equal(result, other)
- def test_combine_generic(self, float_frame):
- df1 = float_frame
- df2 = float_frame.loc[float_frame.index[:-5], ["A", "B", "C"]]
- combined = df1.combine(df2, np.add)
- combined2 = df2.combine(df1, np.add)
- assert combined["D"].isna().all()
- assert combined2["D"].isna().all()
- chunk = combined.loc[combined.index[:-5], ["A", "B", "C"]]
- chunk2 = combined2.loc[combined2.index[:-5], ["A", "B", "C"]]
- exp = (
- float_frame.loc[float_frame.index[:-5], ["A", "B", "C"]].reindex_like(chunk)
- * 2
- )
- tm.assert_frame_equal(chunk, exp)
- tm.assert_frame_equal(chunk2, exp)
|