Spec-Zone.ru › pandas 0.22

pandas.io.json.json_normalize

pandas.io.json.json_normalize(data, record_path=None, meta=None, meta_prefix=None, record_prefix=None, errors='raise', sep='.') [source]

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

Параметры:

data : dict или список словарей

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

record_path : строка или список строк, по умолчанию None

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

meta : список путей (строка или список строк), по умолчанию None

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

record_prefix : строка, по умолчанию None

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

meta_prefix : строка, по умолчанию None

errors : {‘raise’, ‘ignore’}, по умолчанию ‘raise’

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

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

sep : строка, по умолчанию ‘.’

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

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

Возвращает:

frame : DataFrame

Примеры

>>> 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 = [{'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 info.governor    state shortname
0        Dade       12345    Rick Scott  Florida        FL
1     Broward       40000    Rick Scott  Florida        FL
2  Palm Beach       60000    Rick Scott  Florida        FL
3      Summit        1234   John Kasich     Ohio        OH
4    Cuyahoga        1337   John Kasich     Ohio        OH

© 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.22.0/generated/pandas.io.json.json_normalize.html

Spec-Zone.ru

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