def test_build_table_schema(self): result = build_table_schema(self.df, version=False) expected = { 'fields': [ { 'name': 'idx', 'type': 'integer' }, { 'name': 'A', 'type': 'integer' }, { 'name': 'B', 'type': 'string' }, { 'name': 'C', 'type': 'datetime' }, { 'name': 'D', 'type': 'duration' }, ], 'primaryKey': ['idx'] } assert result == expected result = build_table_schema(self.df) assert "pandas_version" in result
def test_build_table_schema(self): result = build_table_schema(self.df, version=False) expected = { "fields": [ { "name": "idx", "type": "integer" }, { "name": "A", "type": "integer" }, { "name": "B", "type": "string" }, { "name": "C", "type": "datetime" }, { "name": "D", "type": "duration" }, ], "primaryKey": ["idx"], } assert result == expected result = build_table_schema(self.df) assert "pandas_version" in result
def test_series(self): s = pd.Series([1, 2, 3], name='foo') result = build_table_schema(s, version=False) expected = {'fields': [{'name': 'index', 'type': 'integer'}, {'name': 'foo', 'type': 'integer'}], 'primaryKey': ['index']} self.assertEqual(result, expected) result = build_table_schema(s) self.assertTrue('pandas_version' in result)
def test_series(self): s = pd.Series([1, 2, 3], name='foo') result = build_table_schema(s, version=False) expected = {'fields': [{'name': 'index', 'type': 'integer'}, {'name': 'foo', 'type': 'integer'}], 'primaryKey': ['index']} assert result == expected result = build_table_schema(s) assert 'pandas_version' in result
def test_build_table_schema(self): result = build_table_schema(self.df, version=False) expected = { 'fields': [{'name': 'idx', 'type': 'integer'}, {'name': 'A', 'type': 'integer'}, {'name': 'B', 'type': 'string'}, {'name': 'C', 'type': 'datetime'}, {'name': 'D', 'type': 'duration'}, ], 'primaryKey': ['idx'] } assert result == expected result = build_table_schema(self.df) assert "pandas_version" in result
def test_mi_falsey_name(self): # GH 16203 df = pd.DataFrame(np.random.randn(4, 4), index=pd.MultiIndex.from_product([('A', 'B'), ('a', 'b')])) result = [x['name'] for x in build_table_schema(df)['fields']] assert result == ['level_0', 'level_1', 0, 1, 2, 3]
def test_mi_falsey_name(self): # GH 16203 df = pd.DataFrame( np.random.randn(4, 4), index=pd.MultiIndex.from_product([("A", "B"), ("a", "b")]), ) result = [x["name"] for x in build_table_schema(df)["fields"]] assert result == ["level_0", "level_1", 0, 1, 2, 3]
def test_series(self): s = pd.Series([1, 2, 3], name="foo") result = build_table_schema(s, version=False) expected = { "fields": [ { "name": "index", "type": "integer" }, { "name": "foo", "type": "integer" }, ], "primaryKey": ["index"], } assert result == expected result = build_table_schema(s) assert "pandas_version" in result
def test_multiindex(self): df = self.df.copy() idx = pd.MultiIndex.from_product([('a', 'b'), (1, 2)]) df.index = idx result = build_table_schema(df, version=False) expected = { 'fields': [ { 'name': 'level_0', 'type': 'string' }, { 'name': 'level_1', 'type': 'integer' }, { 'name': 'A', 'type': 'integer' }, { 'name': 'B', 'type': 'string' }, { 'name': 'C', 'type': 'datetime' }, { 'name': 'D', 'type': 'duration' }, ], 'primaryKey': ['level_0', 'level_1'] } assert result == expected df.index.names = ['idx0', None] expected['fields'][0]['name'] = 'idx0' expected['primaryKey'] = ['idx0', 'level_1'] result = build_table_schema(df, version=False) assert result == expected
def test_multiindex(self): df = self.df.copy() idx = pd.MultiIndex.from_product([("a", "b"), (1, 2)]) df.index = idx result = build_table_schema(df, version=False) expected = { "fields": [ { "name": "level_0", "type": "string" }, { "name": "level_1", "type": "integer" }, { "name": "A", "type": "integer" }, { "name": "B", "type": "string" }, { "name": "C", "type": "datetime" }, { "name": "D", "type": "duration" }, ], "primaryKey": ["level_0", "level_1"], } assert result == expected df.index.names = ["idx0", None] expected["fields"][0]["name"] = "idx0" expected["primaryKey"] = ["idx0", "level_1"] result = build_table_schema(df, version=False) assert result == expected
def test_series_unnamed(self): result = build_table_schema(pd.Series([1, 2, 3]), version=False) expected = { 'fields': [{ 'name': 'index', 'type': 'integer' }, { 'name': 'values', 'type': 'integer' }], 'primaryKey': ['index'] } assert result == expected
def test_multiindex(self): df = self.df.copy() idx = pd.MultiIndex.from_product([('a', 'b'), (1, 2)]) df.index = idx result = build_table_schema(df, version=False) expected = { 'fields': [{'name': 'level_0', 'type': 'string'}, {'name': 'level_1', 'type': 'integer'}, {'name': 'A', 'type': 'integer'}, {'name': 'B', 'type': 'string'}, {'name': 'C', 'type': 'datetime'}, {'name': 'D', 'type': 'duration'}, ], 'primaryKey': ['level_0', 'level_1'] } assert result == expected df.index.names = ['idx0', None] expected['fields'][0]['name'] = 'idx0' expected['primaryKey'] = ['idx0', 'level_1'] result = build_table_schema(df, version=False) assert result == expected
def dataframe_to_table(df, is_preview=False): count = len(df) if is_preview and count > 20: data = df[:10].merge(df[-10:], how='outer') else: data = df from pandas.io.json.table_schema import build_table_schema schema = build_table_schema(df, index=False) data = tz_convert(data) data = [clear_dict_nan_value(d) for d in data.to_dict("records")] return dict(data=data, count=count, fields=schema.get('fields'), is_preview=is_preview)
def test_series_unnamed(self): result = build_table_schema(pd.Series([1, 2, 3]), version=False) expected = { "fields": [ { "name": "index", "type": "integer" }, { "name": "values", "type": "integer" }, ], "primaryKey": ["index"], } assert result == expected
def test_series_unnamed(self): result = build_table_schema(pd.Series([1, 2, 3]), version=False) expected = {'fields': [{'name': 'index', 'type': 'integer'}, {'name': 'values', 'type': 'integer'}], 'primaryKey': ['index']} assert result == expected