Pandas Json normaliserer

Pandas Json normaliserer

"JSON" står i utgangspunktet for "JavaScript -objektnotasjonen".

Pandas har den mest populære "databehandlingsrammen" i Python, som er "JSON" normaliserende "-funksjonen. Det er et innebygd funksjon av Pandas. Det er den enkleste måten å gjøre Pandas JSON Normalization () ved å bruke "Python" -forespørselsmodulene.

I denne artikkelen vil vi se forskjellige nivåer av normalisering.

Syntaks

Pandas.json_normalize (data, max_level = ingen, record_prefix = ingen)

Her:

  1. Data kan være en ordbok eller en liste over ordbøker.
  2. MAX_LEVEL brukes til å spesifisere maksimale nivåer for å normalisere. Hvis det ikke er spesifisert, vil den normalisere alle nivåer. Det tar et heltall som en parameter; Som standard er det ingen.
  3. Hvis du vil legge til noe prefiks i etiketten etter normalisering, kan du legge det til ved å sende prefikset til Record_Prefix -parameteren. Som standard er det ingen.

Eksempel 1: med data som parameter

Her vil vi bare passere JSON -dataene. Så det vil normalisere alle nivåer. La oss lage fem ordbøker i en liste (liste over ordbøker) og normalisere den.

Importer pandaer
# Tenk på JSON -dataene
faktisk_json_data = [
"State": "AP", "Code": "APH456",
"State": "TS", "Code": "SCVH456",
"State": "Mamma", "Code": "TYH4543",
"State": "Pun", "Code": "Ayu78Bn6",
"State": "Bng", "Code": "RE456",
]
print (faktisk_json_data)
# normalisere dataene ovenfor
Normalisert = pandaer.json_normalize (faktisk_json_data)
# Vis de normaliserte dataene
trykk (normalisert)

Produksjon

['State': 'ap', 'kode': 'aph456', 'state': 'ts', 'kode': 'scvh456', 'state': 'mamma', 'kode': 'Tyh4543', 'State': 'Pun', 'Code': 'Ayu78Bn6', 'State': 'Bng', 'Code': 're456']
Statskode
0 AP APH456
1 TS SCVH456
2 mamma tyh4543
3 Pun Ayu78Bn6
4 BNG RE456

Forklaring

JSON -data blir konvertert til pandaer med et maksimalt normaliseringsnivå.

Eksempel 2

La oss lage fem ordbøker i en liste (liste over ordbøker) med noen tomme verdier og normalisere den.

Importer pandaer
# Tenk på JSON -dataene
faktisk_json_data = [
"State": "AP", "Code": "APH456", "Lengde": 100,
"State": "TS", "Code": "SCVH456",
"State": "Mamma", "Lengde": 200,
"State": "Pun", "Code": "Ayu78Bn6",
"State": "Bng", "Lengde": 300,
]
print (faktisk_json_data)
# normalisere dataene ovenfor
Normalisert = pandaer.json_normalize (faktisk_json_data)
# Vis de normaliserte dataene
trykk (normalisert)

Produksjon

[° ',' Lengde ': 200, ' State ':' Pun ',' Code ':' Ayu78Bn6 ', ' State ':' Bng ',' lengde ': 300]
Statskodelengde
0 ap aph456 100.0
1 TS SCVH456 NAN
2 mamma nan 200.0
3 ordspill ayu78Bn6 nan
4 BNG NAN 300.0

Forklaring

JSON -data blir konvertert til pandaer med et maksimalt normaliseringsnivå. Hvis verdien er tom, returneres NAN på tomme posisjoner.

Eksempel 3: med max_level -parameteren

La oss lage fem ordbøker i en liste (liste over ordbøker) og normalisere den opp til nivå 0.

Importer pandaer
# Tenk på JSON -dataene
faktisk_json_data = [
"State": "State 1": "AP", "State 2": "Ind", "State 3": "Cal", "Code": "APH456", "Lengde": 100,
"State": "TS", "Code": "SCVH456", "Lengde": 160,
"State": "Mamma", "Code": "Savh4Mo6", "Lengde": 200,
"State": "Pun", "Code": "Ayu78Bn6", "Lengde": 200,
"State": "State 1": "Bng", "State 2": "Tln", "Code": "Ayu78Bn6", "Lengde": 300,
]
# normalisere dataene ovenfor opp til nivå 0
Normalisert = pandaer.json_normalize (faktisk_json_data, max_level = 0)
# Vis de normaliserte dataene
trykk (normalisert)

Produksjon

Statskodelengde
0 'State 1': 'Ap', 'State 2': 'Ind', 'State 3':… APH456 100
1 TS SCVH456 160
2 mamma savh4mo6 200
3 Pun Ayu78Bn6 200
4 'State 1': 'Bng', 'State 2': 'Tln' Ayu78Bn6 300

Forklaring

Normalisering gjøres bare opp til nivå 0. Likevel kan vi normalisere dataene i tilstandskolonnen.

La oss normalisere opp til nivå 1 i neste eksempel.

Eksempel 4

La oss lage fem ordbøker i en liste (liste over ordbøker) og normalisere den opp til nivå 1.

Importer pandaer
# Tenk på JSON -dataene
faktisk_json_data = [
"State": "State 1": "AP", "State 2": "Ind", "State 3": "Cal", "Code": "APH456", "Lengde": 100,
"State": "TS", "Code": "SCVH456", "Lengde": 160,
"State": "Mamma", "Code": "Savh4Mo6", "Lengde": 200,
"State": "Pun", "Code": "Ayu78Bn6", "Lengde": 200,
"State": "State 1": "Bng", "State 2": "Tln", "Code": "Ayu78Bn6", "Lengde": 300,
]
# normalisere dataene ovenfor opp til nivå 1
Normalisert = pandaer.json_normalize (faktisk_json_data, max_level = 1)
# Vis de normaliserte dataene
trykk (normalisert)

Produksjon

Kodelengde tilstand.State 1 State.State 2 State.State 3 State
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 Pun
4 Ayu78Bn6 300 Bng Tln Nan Nan

Forklaring

Nå kan du se den maksimale normaliseringen er gjort.

Eksempel 5: Med Record_Prefix som parameter

Lag JSON-data med en ordbok som inneholder tre stater og legger prefikset “i-” til statsetiketten.

Importer pandaer
# Tenk på JSON -dataene
faktisk_json_data = "State": ["ap", "ts", "pnu"]
# Normaliser dataene ovenfor ved å passere parameteren Record_Prefix
Normalisert = pandaer.json_normalize (faktisk_json_data, "State", record_prefix = "i-")
# Vis de normaliserte dataene
trykk (normalisert)

Produksjon

I-0
0 ap
1 ts
2 pnu

Forklaring

Så vi legger prefikset til staten. Etter normalisering blir prefikset lagt til etiketten 0.

Konklusjon

“Pandas JSON Normalization” er en veldig effektiv, kraftig og praktisk måte å konvertere ustrukturerte data til en verdifull tilstand av Dataframe. Vi lærte om alle Pandas JSON -normaliseringsalternativene i denne artikkelen. Som forklart har vi gjort JSON -normaliseringen ved å bruke maks nivå “0” og maks nivå “1” for distribusjonsmåten. Vi har også gjort JSON -normaliseringen på DataFrame og flere kolonner med DataFrames. JSON -normaliseringsmetoden til Pandas fører oss til en bærekraftig ytelse av DataFrame på alle mulige måter.