Распаковать словарь в единый датафрейм - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть сложный словарь, который я хочу распаковать в один DataFrame, но не могу понять.Я хочу распаковать данные, содержащиеся в «строках» (т. Е. Все они содержатся в []), в один DataFrame («строки»). Я пробовал множество комбинаций доступа внутри словаря, но безрезультатно.

Вот данные:

{None: {'transfers': {'1': {'rows': [{'pointOfSaleID': 2,
  'initialAmount': '£0.00',
  'opened': 'xx, 27/11/2018 11:58',
  'dayIncome': '£336.23',
  'cash': [{'dateTime': '27/11/2018 18:23',
    'employeeName': 'xx',
    'sum': '-£45.00',
    'comment': 'cabs to collect in store stock\nEvents'}],
  'cashTotal': '£291.23',
  'cashExpected': '£291.23',
  'closed': 'xx, 27/11/2018 20:54',
  'banked': '£0.00',
  'left': '£0.00',
  'totalCounted': '£0.00',
  'difference': '-£291.23',
  'varianceReason': '',
  'totalTransactions': 48},
 {'pointOfSaleID': 2,
  'initialAmount': '£0.00',
  'opened': 'xx, 28/11/2018 09:16',
  'dayIncome': '£35.94',
  'cashTotal': '£35.94',
  'cashExpected': '£35.94',
  'closed': '----',
  'banked': '----',
  'left': '----',
  'totalCounted': '----',
  'difference': '----',
  'varianceReason': '',
  'totalTransactions': 3}...]

Как я могу получить доступ только к данным в строках и распаковать их в DataFrame?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Предполагая, что ваш словарь называется 'd', он должен получить список вложенных диктов, с одним диктом на запись (на строку):

d[None]['transfers']['1']['rows']

Вы должны быть в состоянии передать это в DataFrameКонструктор:

df = pd.DataFrame(d[None]['transfers']['1']['rows'])

Если это сработает, вы получите вложенные словари в каждой записи столбца cash.Чтобы исправить это, я бы указал вам на [json_normalize](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.json.json_normalize.html), который этот поток SO может помочь вам понять: pandas.io.json.json_normalize с очень вложенным json

0 голосов
/ 28 ноября 2018

Функция from_dict должна работать в вашем случае.следующая документация довольно хороша: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.from_dict.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...