def test_missing(self): diclist = [deepcopy(basic_dict) for _ in range(10)] diclist[5]['a'] = nan result = dictionary.pack(diclist) expected = {key: list((i,) * 10) for i, key in enumerate(names)} expected['self'] = deepcopy(expected) expected['a'][5] = nan np.testing.assert_equal(result, expected) del diclist[5]['b'] expected['b'][5] = nan result = dictionary.pack(diclist) np.testing.assert_equal(result, expected)
def test_numpy(self): diclist = [basic_dict for _ in range(10)] expected = {key: np.array(list((i,) * 10)) for i, key in enumerate(names)} expected['self'] = dict(expected) result = dictionary.pack(diclist, dtype=int) np.testing.assert_equal(result, expected)
def test_basic(self): diclist = [basic_dict for _ in range(10)] expected = {key: list((i,) * 10) for i, key in enumerate(names)} expected['self'] = dict(expected) result = dictionary.pack(diclist) self.assertDictEqual(result, expected)
def _dataframe_dict(data, index=None, filler='', header=None): if isinstance(data, dict): try: if depth(data, isiter=True) < 2: return data except TypeError: return data if not isinstance(data, dict): header = resolve_header(header) if header is None: header = get_header(data[0]) data = pack(data, header) data = flatten(data) data = fill_keys(data, filler) return data
def test_embedded_types(self): dtype = {key: int for key in basic_dict} dtype['a'] = float dtype['self'] = dict(dtype) base = deepcopy(basic_dict) base['a'] = 5.5 base['self']['a'] = 5.5 diclist = [base for _ in range(10)] result = dictionary.pack(diclist, header=diclist[0], dtype=dtype) expected = {key: np.array(list((i,) * 10), dtype=int) for i, key in enumerate(names)} expected['a'] = np.array(list((5.5,) * 10), dtype=float) expected['self'] = dict(expected) np.testing.assert_equal(result, expected)
def test_dict(self): header = get_header(testdata[0]) custom_data = fill_keys(flatten(pack(testdata, header)), '') result = dataframe_dict(testdata) expected = dataframe_dict(custom_data) assert_frame_equal(result, expected, check_names=True)