Spec-Zone.ru › pandas 0.25

pandas.io.json.json_normalize

pandas.io.json.json_normalize(data: Union[Dict, List[Dict]], record_path: Union[str, List, NoneType] = None, meta: Union[str, List, NoneType] = None, meta_prefix: Union[str, NoneType] = None, record_prefix: Union[str, NoneType] = None, errors: Union[str, NoneType] = 'raise', sep: str = '.', max_level: Union[int, NoneType] = None) [source]

Нормализация полуструктурированных JSON-данных в плоскую таблицу.

Параметры:
data : dict or list of dicts

Десериализованные JSON-объекты.

record_path : str or list of str, default None

Путь в каждом объекте к списку записей. Если не указан, данные будут предполагаться как массив записей.

meta : list of paths (str or list of str), default None

Поля, используемые в качестве метаданных для каждой записи в результирующей таблице.

meta_prefix : str, default None

Если True, префикс записей состоит из точки (?), например, foo.bar.field, если meta = [‘foo’, ‘bar’].

record_prefix : str, default None

Если True, префикс записей состоит из точки (?), например, foo.bar.field, если путь к записям [‘foo’, ‘bar’].

errors : {‘raise’, ‘ignore’}, default ‘raise’

Настройка обработки ошибок.

  • ‘ignore’ : пропустит KeyError, если ключи, указанные в meta, не всегда присутствуют.
  • ‘raise’ : вызовет KeyError, если ключи, указанные в meta, не всегда присутствуют.

Новая в версии 0.20.0.

sep : str, default ‘.’

Вложенные записи сгенерируют имена, разделённые символом sep. Например, для sep=’.’, {‘foo’: {‘bar’: 0}} -> foo.bar.

Новая в версии 0.20.0.

max_level : int, default None

Максимальное количество уровней (глубина словаря) для нормализации. Если None, нормализует все уровни.

Новая в версии 0.25.0.

Возвращает:
frame : DataFrame
Нормализует полуструктурированные JSON-данные в плоскую таблицу.

Примеры

>>> from pandas.io.json import json_normalize
>>> data = [{'id': 1, 'name': {'first': 'Coleen', 'last': 'Volk'}},
...         {'name': {'given': 'Mose', 'family': 'Regner'}},
...         {'id': 2, 'name': 'Faye Raker'}]
>>> json_normalize(data)
    id        name name.family name.first name.given name.last
0  1.0         NaN         NaN     Coleen        NaN      Volk
1  NaN         NaN      Regner        NaN       Mose       NaN
2  2.0  Faye Raker         NaN        NaN        NaN       NaN
>>> data = [{'id': 1,
...          'name': "Cole Volk",
...          'fitness': {'height': 130, 'weight': 60}},
...         {'name': "Mose Reg",
...          'fitness': {'height': 130, 'weight': 60}},
...         {'id': 2, 'name': 'Faye Raker',
...          'fitness': {'height': 130, 'weight': 60}}]
>>> json_normalize(data, max_level=0)
            fitness                 id        name
0   {'height': 130, 'weight': 60}  1.0   Cole Volk
1   {'height': 130, 'weight': 60}  NaN    Mose Reg
2   {'height': 130, 'weight': 60}  2.0  Faye Raker

Нормализует вложенные данные до уровня 1.

>>> data = [{'id': 1,
...          'name': "Cole Volk",
...          'fitness': {'height': 130, 'weight': 60}},
...         {'name': "Mose Reg",
...          'fitness': {'height': 130, 'weight': 60}},
...         {'id': 2, 'name': 'Faye Raker',
...          'fitness': {'height': 130, 'weight': 60}}]
>>> json_normalize(data, max_level=1)
  fitness.height  fitness.weight   id    name
0   130              60          1.0    Cole Volk
1   130              60          NaN    Mose Reg
2   130              60          2.0    Faye Raker
>>> data = [{'state': 'Florida',
...          'shortname': 'FL',
...          'info': {'governor': 'Rick Scott'},
...          'counties': [{'name': 'Dade', 'population': 12345},
...                       {'name': 'Broward', 'population': 40000},
...                       {'name': 'Palm Beach', 'population': 60000}]},
...         {'state': 'Ohio',
...          'shortname': 'OH',
...          'info': {'governor': 'John Kasich'},
...          'counties': [{'name': 'Summit', 'population': 1234},
...                       {'name': 'Cuyahoga', 'population': 1337}]}]
>>> result = json_normalize(data, 'counties', ['state', 'shortname',
...                                            ['info', 'governor']])
>>> result
         name  population    state shortname info.governor
0        Dade       12345   Florida    FL    Rick Scott
1     Broward       40000   Florida    FL    Rick Scott
2  Palm Beach       60000   Florida    FL    Rick Scott
3      Summit        1234   Ohio       OH    John Kasich
4    Cuyahoga        1337   Ohio       OH    John Kasich
>>> data = {'A': [1, 2]}
>>> json_normalize(data, 'A', record_prefix='Prefix.')
    Prefix.0
0          1
1          2

Возвращает нормализованные данные со столбцами, префикс которых состоит из заданной строки.

© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.io.json.json_normalize.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API