def test_pandas_huge_pack_item(self): table = Table("test", ['simulation_id', 'learner_id']) for i in range(2): table[(i, 2)] = dict(C=5, A=5, N=1, _packed=dict(reward=[2] * 9000)) time = min(timeit.repeat(lambda: table.to_pandas(), repeat=6, number=1)) #best time on my laptop was 0.15 self.assertLess(time, 1)
def test_pandas_with_dict_column(self): import pandas as pd #type: ignore import pandas.testing #type: ignore table = Table("test", ['a']) table['A'] = dict(b='B', c={'z': 10}, d='d') table['B'] = dict(e='E') expected_df = pd.DataFrame( [dict(a='A', b='B', c={'z': 10}, d='d'), dict(a='B', e='E')]) actual_df = table.to_pandas() pandas.testing.assert_frame_equal(expected_df, actual_df)
def test_pandas_two_pack_item(self): import pandas as pd import pandas.testing table = Table("test", ['a']) table['A'] = dict(c=1, _packed=dict(b=['B', 'b'], d=['D', 'd'])) table['B'] = dict(e='E') expected_df = pd.DataFrame([ dict(a='A', index=1, c=1, b='B', d='D'), dict(a='A', index=2, c=1, b='b', d='d'), dict(a='B', index=1, e='E') ]) actual_df = table.to_pandas() pandas.testing.assert_frame_equal(expected_df, actual_df, check_dtype=False)
def test_pandas_with_packed_array_column(self): import pandas as pd #type: ignore import pandas.testing #type: ignore table = Table("test", ['a']) table['A'] = dict(b=1., c=[1, 2], d='d', _packed={'z': [[1, 2], [3, 4]]}) table['B'] = dict(b=2., e='E') expected_df = pd.DataFrame([ dict(a='A', index=1, b=1., c=[1, 2], d='d', z=[1, 2]), dict(a='A', index=2, b=1., c=[1, 2], d='d', z=[3, 4]), dict(a='B', index=1, b=2., e='E') ]) actual_df = table.to_pandas() pandas.testing.assert_frame_equal(expected_df, actual_df, check_dtype=False)