Преобразование файла Json в кадр данных Pandas - PullRequest
0 голосов
/ 07 мая 2018

У меня есть файл json, который я преобразовал в dict, как показано ниже:

{'DATA': [{'COMPANY_SCHEMA': 'ABC', 'CONFIG_TYPE': 'rtype', 'IM_ID': '44f8d1b4_437e', 'MODIFIED_DATE': 'Unknown', 'ID': 'Test', 'CONFIG_KEY': 'posting_f', 'SYSTEM_NUMBER': '50', 'SYS_CONFIG_VALUE': '0', 'SYS_CONFIG_STRING_VALUE': 'true'}

Я написал следующий код для преобразования файла json в указанный выше формат dict

with open('data.json') as data_file: 
    data = json.load(data_file)

Теперь я пытаюсь сохранить этот dict как кадр данных pandas с ключами в качестве заголовков столбцов.

Итак, я пишу ниже:

df=pd.DataFrame.from_dict(data,orient='columns')

Но я получаю все столбцы как один столбец.

df.head(3)

    DATA
0   {'COMPANY_SCHEMA': 'ABC.', 'CON...
1   {'COMPANY_SCHEMA': 'ABC', 'CON...
2   {'COMPANY_SCHEMA': 'ABC', 'CON...

У меня в основном куча таких json-файлов в папке, и я пытаюсь прочитать их все и сохранить в одном фрейме данных панд, добавленном один под другим.

Так что я пытался выше. Итак

1) почему вышеприведенная ошибка при преобразовании в pandas data frame и

ii) Есть ли лучший и более быстрый способ прочитать кучу таких файлов и добавить к одному json, а затем добавить его в кадр pandas или один за другим?

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Предоставленные вами данные повреждены, поэтому их трудно воспроизвести. Попробуйте представить воспроизводимый случай, когда спрашиваете! ; -)

В любом случае, я думаю, вам просто нужно:

df = pandas.DataFrame(data['DATA'])

Где data - это словарь, который вы создали с помощью json.load().

A pandas.DataFrame() можно без проблем инициализировать списком словарей, но вам нужно передать список словарей.

Если вы беспокоитесь о производительности, тогда да, сначала добавьте в свой список словарей и преобразуйте весь список в DataFrame с помощью pandas.DataFrame(list_of_dictionaries).

0 голосов
/ 08 мая 2018

Не знаю, почему вы получаете ошибку, которую вы показываете, но я бы пропустил преобразование json в словарь и просто использовал pd.read_json().

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html

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