Панды | Анализ набора данных JSON

Опубликовано: 27 Марта, 2022

Разбор JSON Dataset с помощью pandas намного удобнее. Pandas позволяет преобразовать список списков в Dataframe и указать имена столбцов отдельно.

Парсер JSON преобразует текст JSON в другое представление и должен принимать все тексты, соответствующие грамматике JSON. Он может принимать формы и расширения, отличные от JSON. Реализация может установить следующее:

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

Работа с большими наборами данных JSON может ухудшаться, особенно когда они слишком велики для размещения в памяти. В подобных случаях сочетание инструментов командной строки и Python может стать эффективным способом исследования и анализа данных.

Импорт файлов JSON:

Управление JSON осуществляется с помощью библиотеки анализа данных Python, называемой pandas.

import pandas as pd

Now you can read the JSON and save it as a pandas data structure, using the command read_json.

pandas.read_json (path_or_buf=None, orient = None, typ=’frame’, dtype=True, convert_axes=True, convert_dates=True, keep_default_dates=True, numpy=False, precise_float=False, date_unit=None, encoding=None, lines=False, chunksize=None, compression=’infer’)

import pandas as pd
# Creating Dataframe 
df = pd.DataFrame([["a", "b"], ["c", "d"]],
                  index =["row 1", "row 2"],
                  columns =["col 1", "col 2"])
  
# Indication of expected JSON string format
print(df.to_json(orient ="split"))
  
print(df.to_json(orient ="index"))
Output:
{"columns":["col 1", "col 2"],
 "index":["row 1", "row 2"],
 "data":[["a", "b"], ["c", "d"]]}

{"row 1":{"col 1":"a", "col 2":"b"},
 "row 2":{"col 1":"c", "col 2":"d"}}


Преобразуйте объект в строку JSON с помощью dataframe.to_json:

DataFrame.to_json(path_or_buf=None, orient=None, date_format=None, double_precision=10, force_ascii=True, date_unit=’ms’, default_handler=None, lines=False, compression=’infer’, index=True)

Read the JSON File directly from Dataset:

import pandas as pd
  
print(data)
Output:
total_population
0  {"date": "2019-03-18", "population": 1369169250}
1  {"date": "2019-03-19", "population": 1369211502}

Вложенный анализ JSON с помощью Pandas:

Вложенные файлы JSON могут быть трудоемкими и сложными для обработки и загрузки в Pandas.
Мы используем вложенный "raw_nyc_phil.json." 'Для создания плоского фрейма данных pandas из одного вложенного массива, а затем распаковываем глубоко вложенный массив.

Code #1:
Let’s unpack the works column into a standalone dataframe. We’ll also grab the flat columns.

import json 
import pandas as pd 
from pandas.io.json import json_normalize 
  
    d = json.load(f)
  
# lets put the data into a pandas df
# clicking on raw_nyc_phil.json under "Input Files"
# tells us parent node is "programs"
nycphil = json_normalize(d["programs"])
nycphil.head(3)

Выход:

Code #2:
Let’s unpack the works column into a standalone dataframe using json_normaliz.

works_data = json_normalize(data = d["programs"],
                            record_path ="works"
                            meta =["id", "orchestra", "programID", "season"])
works_data.head(3)

Выход:

Код № 3:

Let’s flatten the ‘soloists’ data here by passing a list. Since soloists is nested in work.

soloist_data = json_normalize(data = d["programs"],
                              record_path =["works", "soloists"],
                              meta =["id"])
  
soloist_data.head(3)

Выход:

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.