Пример #1
0
    def test_update_raise_on_overlap(self):
        pan = Panel([[[1.5, np.nan, 3.], [1.5, np.nan, 3.], [1.5, np.nan, 3.],
                      [1.5, np.nan, 3.]],
                     [[1.5, np.nan, 3.], [1.5, np.nan, 3.], [1.5, np.nan, 3.],
                      [1.5, np.nan, 3.]]])

        with pytest.raises(ValueError, match='Data overlaps'):
            pan.update(pan, errors='raise')
Пример #2
0
    def test_update_filtered(self):
        pan = Panel(
            [
                [[1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]],
                [[1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]],
            ]
        )

        other = Panel([[[3.6, 2.0, np.nan], [np.nan, np.nan, 7]]], items=[1])

        pan.update(other, filter_func=lambda x: x > 2)

        expected = Panel(
            [
                [[1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]],
                [[1.5, np.nan, 3], [1.5, np.nan, 7], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]],
            ]
        )

        assert_panel_equal(pan, expected)
Пример #3
0
    def test_update_nooverwrite(self):
        pan = Panel(
            [
                [[1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]],
                [[1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]],
            ]
        )

        other = Panel([[[3.6, 2.0, np.nan], [np.nan, np.nan, 7]]], items=[1])

        pan.update(other, overwrite=False)

        expected = Panel(
            [
                [[1.5, np.nan, 3], [1.5, np.nan, 3], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]],
                [[1.5, 2.0, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]],
            ]
        )

        assert_panel_equal(pan, expected)
Пример #4
0
    def test_update_from_dict(self):
        pan = Panel(
            {
                "one": DataFrame([[1.5, np.nan, 3], [1.5, np.nan, 3], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]]),
                "two": DataFrame([[1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]]),
            }
        )

        other = {"two": DataFrame([[3.6, 2.0, np.nan], [np.nan, np.nan, 7]])}

        pan.update(other)

        expected = Panel(
            {
                "two": DataFrame([[3.6, 2.0, 3], [1.5, np.nan, 7], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]]),
                "one": DataFrame([[1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0], [1.5, np.nan, 3.0]]),
            }
        )

        assert_panel_equal(pan, expected)
Пример #5
0
 def test_update_deprecation(self, raise_conflict):
     pan = Panel([[[1.5, np.nan, 3.]]])
     other = Panel([[[]]])
     with tm.assert_produces_warning(FutureWarning):
         pan.update(other, raise_conflict=raise_conflict)
Пример #6
0
 def test_update_raise_bad_parameter(self, bad_kwarg, exception, msg):
     pan = Panel([[[1.5, np.nan, 3.]]])
     with pytest.raises(exception, match=msg):
         pan.update(pan, **bad_kwarg)