Os pandas JSON normalizam

Os pandas JSON normalizam

O "JSON" basicamente representa a "notação de objeto JavaScript".

Os pandas têm a "estrutura de processamento de dados" mais popular em Python, que é o recurso "JSON" normalizando ". É um recurso interno de pandas. É a maneira mais simples de fazer os módulos de solicitação Pandas JSON () usando os módulos de solicitação "Python".

Neste artigo, veremos diferentes níveis de normalização.

Sintaxe

Pandas.json_normalize (dados, max_level = nenhum, registro_prefix = nenhum)

Aqui:

  1. Os dados podem ser um dicionário ou uma lista de dicionários.
  2. Max_level é usado para especificar níveis máximos para normalizar. Se não for especificado, normalizará todos os níveis. É preciso um número inteiro como um parâmetro; por padrão, não é.
  3. Se você deseja adicionar qualquer prefixo ao rótulo após a normalização, poderá adicioná -lo passando o prefixo ao parâmetro Record_Prefix. Por padrão, não é.

Exemplo 1: com dados como parâmetro

Aqui, vamos passar apenas os dados JSON. Então, normalizará todos os níveis. Vamos criar cinco dicionários dentro de uma lista (lista de dicionários) e normalizá -la.

Importar pandas
# Considere os dados JSON
real_json_data = [
"State": "AP", "Code": "Aph456",
"estado": "ts", "code": "scvh456",
"State": "Mum", "Code": "TYH4543",
"estado": "trocadilho", "código": "ayu78bn6",
"estado": "bng", "code": "re456",
]
print (real_json_data)
# normalize os dados acima
Normalizado = pandas.json_normalize (real_json_data)
# Exiba os dados normalizados
Imprimir (normalizado)

Saída

['estado': 'ap', 'code': 'aph456', 'estado': 'ts', 'code': 'scvh456', 'estado': 'mum', 'código': 'Tyh4543', 'estado': 'pun', 'code': 'ayu78bn6', 'estado': 'bng', 'code': 're456']
Código do Estado
0 AP APH456
1 TS SCVH456
2 mamãe tyh4543
3 pun ayu78bn6
4 bng re456

Explicação

Os dados JSON são convertidos em pandas com um nível máximo de normalização.

Exemplo 2

Vamos criar cinco dicionários dentro de uma lista (lista de dicionários) com alguns valores vazios e normalizá -lo.

Importar pandas
# Considere os dados JSON
real_json_data = [
"State": "AP", "Code": "Aph456", "Comprimento": 100,
"estado": "ts", "code": "scvh456",
"State": "Mum", "Comprimento": 200,
"estado": "trocadilho", "código": "ayu78bn6",
"estado": "bng", "comprimento": 300,
]
print (real_json_data)
# normalize os dados acima
Normalizado = pandas.json_normalize (real_json_data)
# Exiba os dados normalizados
Imprimir (normalizado)

Saída

['estado': 'ap', 'code': 'aph456', 'comprimento': 100, 'estado': 'ts', 'code': 'scvh456', 'estado': 'mãe ',' comprimento ': 200, ' estado ':' pun ',' code ':' ayu78bn6 ', ' estado ':' bng ',' comprimento ': 300]
Comprimento do código do estado
0 AP APH456 100.0
1 TS SCVH456 NAN
2 mamãe nan 200.0
3 pun ayu78bn6 nan
4 bng nan 300.0

Explicação

Os dados JSON são convertidos em pandas com um nível máximo de normalização. Se o valor estiver vazio, a nan será devolvida em posições vazias.

Exemplo 3: com o parâmetro max_level

Vamos criar cinco dicionários dentro de uma lista (lista de dicionários) e normalizá -la até o nível 0.

Importar pandas
# Considere os dados JSON
real_json_data = [
"Estado": "Estado 1": "AP", "Estado 2": "Ind", "Estado 3": "Cal", "Code": "Aph456", "Comprimento": 100,
"estado": "ts", "code": "scvh456", "comprimento": 160,
"State": "Mum", "Code": "Savh4mo6", "Comprimento": 200,
"estado": "trocadilho", "código": "ayu78bn6", "comprimento": 200,
"estado": "estado 1": "bng", "estado 2": "tln", "code": "ayu78bn6", "comprimento": 300,
]
# normalize os dados acima até o nível 0
Normalizado = pandas.json_normalize (real_json_data, max_level = 0)
# Exiba os dados normalizados
Imprimir (normalizado)

Saída

Comprimento do código do estado
0 'Estado 1': 'AP', 'Estado 2': 'Ind', 'Estado 3':… Aph456 100
1 TS SCVH456 160
2 mamãe savh4mo6 200
3 pun ayu78bn6 200
4 'Estado 1': 'Bng', 'Estado 2': 'Tln' ayu78bn6 300

Explicação

A normalização é feita apenas até o nível 0. Ainda assim, podemos normalizar os dados na coluna de estado.

Vamos nos normalizar até o nível 1 no próximo exemplo.

Exemplo 4

Vamos criar cinco dicionários dentro de uma lista (lista de dicionários) e normalizá -la até o nível 1.

Importar pandas
# Considere os dados JSON
real_json_data = [
"Estado": "Estado 1": "AP", "Estado 2": "Ind", "Estado 3": "Cal", "Code": "Aph456", "Comprimento": 100,
"estado": "ts", "code": "scvh456", "comprimento": 160,
"State": "Mum", "Code": "Savh4mo6", "Comprimento": 200,
"estado": "trocadilho", "código": "ayu78bn6", "comprimento": 200,
"estado": "estado 1": "bng", "estado 2": "tln", "code": "ayu78bn6", "comprimento": 300,
]
# normalize os dados acima até o nível 1
Normalizado = pandas.json_normalize (real_json_data, max_level = 1)
# Exiba os dados normalizados
Imprimir (normalizado)

Saída

Estado do comprimento do código.Estado 1 Estado.Estado 2 Estado.Estado 3 Estado
0 APH456 100 AP IND CAL NAN
1 SCVH456 160 NAN NAN NAN TS
2 Savh4mo6 200 Nan Nan Nan Mum
3 ayu78bn6 200 nan nan nan trocadilho
4 ayu78bn6 300 bng tln nan nan

Explicação

Agora você pode ver a normalização máxima é feita.

Exemplo 5: com registro_prefix como parâmetro

Crie dados JSON com um dicionário que detém três estados e adicione o prefixo "i-" ao rótulo do estado.

Importar pandas
# Considere os dados JSON
real_json_data = "estado": ["AP", "TS", "PNU"]
# normalize os dados acima, passando o parâmetro Record_Prefix
Normalizado = pandas.json_normalize (real_json_data, "estado", registro_prefix = "i-")
# Exiba os dados normalizados
Imprimir (normalizado)

Saída

I-0
0 AP
1 ts
2 PNU

Explicação

Então, estamos adicionando o prefixo ao estado. Após a normalização, o prefixo é adicionado ao rótulo 0.

Conclusão

“Pandas JSON Normalization” é uma maneira muito eficaz, poderosa e conveniente de converter dados não estruturados em um estado valioso de DataFrame. Aprendemos sobre todas as opções de normalização do Pandas JSON neste artigo. Conforme explicado, fizemos a normalização do JSON usando o nível máximo "0" e o nível máximo "1" para a maneira de distribuição. Também fizemos a normalização do JSON no DataFrame e várias colunas de dados de dados. O método de normalização do json dos pandas nos leva a um desempenho sustentável do quadro de dados de todas as maneiras possíveis.