예제 #1
0
 def test_dataframe(self, data):
     """helper.split_dataframe: DataFrame output"""
     s = helper.split_dataframe(data, "split", type="DataFrame")
     expected = list(data.groupby("split"))
     assert len(s) == len(expected)
     for (i1, d1), (i2, d2) in zip(s, expected):
         assert i1 == i2
         assert isinstance(d1, pd.DataFrame)
         pd.testing.assert_frame_equal(d1, d2)
예제 #2
0
 def test_array(self, data):
     """helper.split_dataframe: array output"""
     s = helper.split_dataframe(data, "split", type="array")
     expected = list(data.groupby("split"))
     assert len(s) == len(expected)
     for (i1, d1), (i2, d2) in zip(s, expected):
         assert i1 == i2
         assert isinstance(d1, np.ndarray)
         np.testing.assert_array_equal(d1, d2.values)
예제 #3
0
 def plot(file=None):
     ax.cla()
     d = state["trc"].loc[f_sel.value]
     for p, trc in helper.split_dataframe(d, ("fret", "particle"),
                                          [("donor", "x"),
                                           ("donor", "y")]):
         ax.plot(trc[:, 0], trc[:, 1])
         ax.text(*trc[0], str(p))
     fig.canvas.draw()
예제 #4
0
 def test_dataframe(self):
     """helpers.pandas.split_dataframe: DataFrame output"""
     s = split_dataframe(self.data, "split", type="DataFrame")
     expected = list(self.data.groupby("split"))
     self.assertEqual(len(s), len(expected))
     for (i1, d1), (i2, d2) in zip(s, expected):
         self.assertEqual(i1, i2)
         self.assertIsInstance(d1, pd.DataFrame)
         pd.testing.assert_frame_equal(d1, d2)
예제 #5
0
 def test_array_select_columns(self):
     """helpers.pandas.split_dataframe: selected columns, array output"""
     s = split_dataframe(self.data, "split", ["B", "A"], type="array")
     expected = list(self.data.groupby("split"))
     self.assertEqual(len(s), len(expected))
     for (i1, d1), (i2, d2) in zip(s, expected):
         self.assertEqual(i1, i2)
         self.assertIsInstance(d1, np.ndarray)
         np.testing.assert_equal(d1, d2[["B", "A"]].values)
예제 #6
0
 def test_array_ambiguous_index(self):
     """helpers.pandas.split_dataframe: ambiguous index, array output"""
     self.data.index = np.full(len(self.data), 1)
     s = split_dataframe(self.data, "split", type="array")
     expected = list(self.data.groupby("split"))
     self.assertEqual(len(s), len(expected))
     for (i1, d1), (i2, d2) in zip(s, expected):
         self.assertEqual(i1, i2)
         self.assertIsInstance(d1, np.ndarray)
         np.testing.assert_equal(d1, d2.values)
예제 #7
0
 def test_array_multiindex(self, data):
     """helper.split_dataframe: multiindex, array output"""
     d = pd.concat([data, data], axis=1, keys=["x", "y"])
     s = helper.split_dataframe(d, ("x", "split"), [("y", "B"), ("x", "A")],
                                type="array")
     expected = list(d.groupby([("x", "split")]))
     assert len(s) == len(expected)
     for (i1, d1), (i2, d2) in zip(s, expected):
         assert i1 == i2
         assert isinstance(d1, np.ndarray)
         np.testing.assert_equal(d1, d2[[("y", "B"), ("x", "A")]].values)
예제 #8
0
 def test_array_multiindex(self):
     """helpers.pandas.split_dataframe: multiindex, array output"""
     d = pd.concat([self.data, self.data], axis=1, keys=["x", "y"])
     s = split_dataframe(d, ("x", "split"), [("y", "B"), ("x", "A")],
                         type="array")
     expected = list(d.groupby([("x", "split")]))
     self.assertEqual(len(s), len(expected))
     for (i1, d1), (i2, d2) in zip(s, expected):
         self.assertEqual(i1, i2)
         self.assertIsInstance(d1, np.ndarray)
         np.testing.assert_equal(d1, d2[[("y", "B"), ("x", "A")]].values)
예제 #9
0
 def test_array_list(self, data):
     """helper.split_dataframe: list of arrays output"""
     data["boolean"] = True
     s = helper.split_dataframe(data, "split", type="array_list")
     expected = list(data.groupby("split"))
     assert len(s) == len(expected)
     for (i1, d1), (i2, d2) in zip(s, expected):
         assert i1 == i2
         assert isinstance(d1, list)
         assert len(d1) == d2.shape[1]
         for c1, (_, c2) in zip(d1, d2.items()):
             np.testing.assert_array_equal(c1, c2.values)
예제 #10
0
 def test_array_list_select_columns(self, data):
     """helper.split_dataframe: selected columns, list of arrays output"""
     cols = ["B", "A"]
     s = helper.split_dataframe(data, "split", cols, type="array_list")
     expected = list(data.groupby("split"))
     assert len(s) == len(expected)
     for (i1, d1), (i2, d2) in zip(s, expected):
         assert i1 == i2
         assert isinstance(d1, list)
         assert len(d1) == len(cols)
         for c1, c2_name in zip(d1, cols):
             np.testing.assert_array_equal(c1, d2[c2_name].values)
예제 #11
0
    def test_array_keep_index(self):
        """helpers.pandas.split_dataframe: keep_index=True, array output"""
        s = split_dataframe(self.data, "split", type="array", keep_index=True)
        expected = list(self.data.groupby("split"))
        self.assertEqual(len(s), len(expected))

        for i, e in expected:
            e.insert(0, "index", e.index)
        for (i1, d1), (i2, d2) in zip(s, expected):
            self.assertEqual(i1, i2)
            self.assertIsInstance(d1, np.ndarray)
            np.testing.assert_equal(d1, d2.values)
예제 #12
0
 def test_array_list_multiindex(self, data):
     """helper.split_dataframe: multiindex, list of arrays output"""
     cols = [("y", "B"), ("x", "A")]
     d = pd.concat([data, data], axis=1, keys=["x", "y"])
     s = helper.split_dataframe(d, ("x", "split"), cols, type="array_list")
     expected = list(d.groupby([("x", "split")]))
     assert len(s) == len(expected)
     for (i1, d1), (i2, d2) in zip(s, expected):
         assert i1 == i2
         assert isinstance(d1, list)
         assert len(d1) == len(cols)
         for c1, c2_name in zip(d1, cols):
             np.testing.assert_array_equal(c1, d2[c2_name].values)
예제 #13
0
    def test_array_keep_index(self, data):
        """helper.split_dataframe: keep_index=True, array output"""
        s = helper.split_dataframe(data,
                                   "split",
                                   type="array",
                                   keep_index=True)
        expected = list(data.groupby("split"))
        assert len(s) == len(expected)

        for i, e in expected:
            e.insert(0, "index", e.index)
        for (i1, d1), (i2, d2) in zip(s, expected):
            assert i1 == i2
            assert isinstance(d1, np.ndarray)
            np.testing.assert_array_equal(d1, d2.values)
예제 #14
0
    def test_array_list_keep_index(self, data):
        """helper.split_dataframe: keep_index=True, list of arrays output"""
        s = helper.split_dataframe(data,
                                   "split",
                                   type="array_list",
                                   keep_index=True)
        expected = list(data.groupby("split"))
        assert len(s) == len(expected)

        for i, e in expected:
            e.insert(0, "index", e.index)
        for (i1, d1), (i2, d2) in zip(s, expected):
            assert i1 == i2
            assert isinstance(d1, list)
            assert len(d1) == d2.shape[1]
            for c1, (_, c2) in zip(d1, d2.items()):
                np.testing.assert_array_equal(c1, c2.values)