示例#1
0
文件: Utils.py 项目: tomas1pit/TM1py
    def test_cellset_and_pandas_df(self):
        rows = {self.dim1_name: None, self.dim2_name: self.dim2_element_names}
        columns = {
            self.dim3_name: "{{TM1SubsetAll([{}])}}".format(self.dim3_name)
        }
        contexts = {self.dim4_name: self.dim4_element_names[0]}
        suppress = None
        mdx = MDXUtils.construct_mdx(cube_name=self.cube_name,
                                     rows=rows,
                                     columns=columns,
                                     contexts=contexts,
                                     suppress=suppress)

        cellset = self.tm1.cubes.cells.execute_mdx(mdx)
        df = Utils.build_pandas_dataframe_from_cellset(cellset,
                                                       multiindex=True)
        self.assertIsInstance(df, pd.DataFrame)
        self.assertTrue(df.shape[0] == 1000)
        self.assertTrue(df.shape[1] == 1)
        cellset = Utils.build_cellset_from_pandas_dataframe(df)
        self.assertTrue(len(cellset.keys()) == 1000)
        self.assertIsInstance(cellset, Utils.CaseAndSpaceInsensitiveTuplesDict)

        df = Utils.build_pandas_dataframe_from_cellset(cellset,
                                                       multiindex=False)
        self.assertTrue(df.shape[0] == 1000)
        self.assertTrue(df.shape[1] == 5)
        self.assertIsInstance(df, pd.DataFrame)
        cellset = Utils.build_cellset_from_pandas_dataframe(df)
        self.assertTrue(len(cellset.keys()) == 1000)
        self.assertIsInstance(cellset, Utils.CaseAndSpaceInsensitiveTuplesDict)
示例#2
0
文件: Utils.py 项目: swethadc/tm1py
    def test_build_pandas_dataframe_from_cellset(self):
        rows = [
            DimensionSelection(dimension_name=self.dim1_name),
            DimensionSelection(dimension_name=self.dim2_name,
                               elements=self.dim2_element_names)
        ]
        columns = [
            DimensionSelection(dimension_name=self.dim3_name,
                               expression="TM1SubsetAll([{}])".format(
                                   self.dim3_name)),
            DimensionSelection(dimension_name=self.dim4_name,
                               subset=self.dim4_subset_Name)
        ]
        suppress = None
        mdx = MDXUtils.construct_mdx(cube_name=self.cube_name,
                                     rows=rows,
                                     columns=columns,
                                     suppress=suppress)
        cellset = self.tm1.cubes.cells.execute_mdx(mdx)
        df = Utils.build_pandas_dataframe_from_cellset(cellset,
                                                       multiindex=False)
        self.assertTrue(df.shape[0] == 1000)

        # cater for potential Sandboxes dimension on first position
        if df.columns[0] == "Sandboxes":
            self.assertTrue(df.shape[1] == 6)
        else:
            self.assertTrue(df.shape[1] == 5)

        self.assertIsInstance(df, pd.DataFrame)
        cellset = Utils.build_cellset_from_pandas_dataframe(df)
        self.assertTrue(len(cellset.keys()) == 1000)
        self.assertIsInstance(cellset, Utils.CaseAndSpaceInsensitiveTuplesDict)