Как правильно преобразовать данные json (которые не определены / запутаны) в DataFrame? - PullRequest
2 голосов
/ 22 марта 2019

Я пытаюсь понять, как данные JSON, которые не анализируются / извлекаются правильно, могут быть преобразованы в (Pandas) DataFrame.

Я использую python (3.7.1) и попробовал обычный способ чтения данных JSON. На самом деле, код работает, если я использую синтаксис transpose или axis = 1. Но использование этого полностью игнорирует большое количество значений или переменных в данных, и я на 100% уверен, что, возможно, код работает, но не дает желаемых результатов.

import pandas as pd
import numpy as np
import csv
import json
sourcefile = open(r"C:\Users\jadil\Downloads\chicago-red-light-and-speed-camera-data\socrata_metadata_red-light-camera-violations.json")
json_data = json.load(sourcefile)
#print(json_data)
type(json_data)
dict
## this code works but is not loading/reading complete data
df = pd.DataFrame.from_dict(json_data, orient="index")
df.head(15)
#This is what I am getting for the first 15 rows
df.head(15)
0
createdAt   1407456580
description This dataset reflects the daily volume of viol...
rights  [read]
flags   [default, restorable, restorePossibleForType]
id  spqx-js37
oid 24980316
owner   {'type': 'interactive', 'profileImageUrlLarge'...
newBackend  False
totalTimesRated 0
attributionLink http://www.cityofchicago.org
hideFromCatalog False
columns [{'description': 'Intersection of the location...
displayType table
indexUpdatedAt  1553164745
rowsUpdatedBy   n9j5-zh

1 Ответ

1 голос
/ 23 марта 2019

Как вы уже видели, Pandas будет пытаться создать фрейм данных из данных JSON, даже если он не был проанализирован или извлечен правильно.Если ваша цель - понять, что именно делает Pandas в грязном JSON-файле, вы можете заглянуть внутрь кода для pd.DataFrame.from_dict(), чтобы узнать больше.Если ваша цель - обеспечить правильное преобразование данных JSON в фрейм данных Pandas, вам потребуется предоставить дополнительную информацию о данных JSON, в идеале предоставив образец данных в виде текста в вашем вопросе.Если ваши данные достаточно сложны, вы можете попробовать функцию json_normalize(), как описано здесь .

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