コード例 #1
0
 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
コード例 #2
0
 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
コード例 #3
0
 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)
コード例 #4
0
 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
コード例 #5
0
 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
コード例 #6
0
 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]
コード例 #7
0
 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]
コード例 #8
0
 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]
コード例 #9
0
 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
コード例 #10
0
    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
コード例 #11
0
    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
コード例 #12
0
 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
コード例 #13
0
    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
コード例 #14
0
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)
コード例 #15
0
 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
コード例 #16
0
 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