"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:
- Data kan være en ordbok eller en liste over ordbøker.
- 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.
- 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.