Pandas til ordbok

Pandas til ordbok

I Python brukes en datastruktur som kalles en ordbok for å lagre informasjon som nøkkelverdipar. Ordbokobjekter er optimalisert for å trekke ut data/verdier når nøkkelen eller nøklene er kjent. For effektivt å finne verdier ved hjelp av den relaterte indeksen, kan vi konvertere en Pandas-serie eller DataFrame med en relevant indeks til et ordboksobjekt med “Index: Value” nøkkelverdipar. For å oppnå denne oppgaven, kan metoden “to_dict ()” brukes. Denne funksjonen er en innebygd funksjon som finnes i Pandas-modulens serieklasse.

En DataFrame blir konvertert til en Python-liste-lignende Data Dictionary of Series ved bruk av Pandas.to_dict () metode avhengig av den angitte verdien av orientens parameter.”

Vi vil bruke TO_DICT () -metoden i pandaer. Vi kan orientere den returnerte ordbokens nøkkelverdipar på en rekke måter ved å bruke TO_DICT () -funksjonen. Funksjonens syntaks er som følger:

Syntaks:

Pandas.DataFrame_Object.to_dict (orient = “dict”, inn i =)

Parametere:

    1. Orient: Hvilken datatype for å konvertere kolonner (serie til) er spesifisert av strengverdien ("dict", "liste", "poster", "indeks", "serie", "splittet"). For eksempel vil nøkkelordets "liste" gi en Python -ordbok med listeobjekter med tastene “Kolonnenavn” og “List” (konvertert serie) som utdata.
    2. inn i: Klasse kan sendes som en forekomst eller faktisk klasse. For eksempel kan en klasseinstans sendes i tilfelle et standarddikt. Parameterens standardverdi er DICT.

Returtype:

Ordbok om konvertert fra en dataframme eller serie.

Data:

I alle eksemplene vil vi bruke følgende DataFrame som heter "Merknader" som inneholder 2 rader og 4 kolonner. Her er kolonneetikettene - ['Id', 'Navn', 'Status', 'Fee'].

Importer pandaer
# Opprett DataFrame ved hjelp av lister
Merknader = Pandas.DataFrame ([[23, 'Sravan', 'Pass', 1000],
[21, 'Sravan', 'Fail', 400],
], kolonner = ['id', 'navn', 'status', 'gebyr'])
# Vis DataFrame - Merknader
trykk (kommentarer)

Produksjon:

ID -navn Statusavgift
0 23 Sravan pass 1000
1 21 Sravan Fail 400

Eksempel 1: to_dict () uten parametere

Vi vil konvertere merknadene DataFrame til en ordbok uten å sende noen parametere til TO_DICT () -metoden.

Importer pandaer
# Opprett DataFrame ved hjelp av lister
Merknader = Pandas.DataFrame ([[23, 'Sravan', 'Pass', 1000],
[21, 'Sravan', 'Fail', 400],
], kolonner = ['id', 'navn', 'status', 'gebyr'])
# Konverter til ordbok
trykk (kommentarer.to_dict ())

Produksjon:

'id': 0: 23, 1: 21, 'Navn': 0: 'Sravan', 1: 'Sravan', 'Status': 0: 'pass', 1: 'Fail' , 'Fee': 0: 1000, 1: 400

Forklaring

Dataframe blir konvertert til en ordbok.

Her ble kolonnene i den originale DataFrame konvertert som nøkler i en ordbok, og hver kolonne vil lagre to verdier igjen i et ordbokformat. Tastene for disse verdiene starter fra 0.

Eksempel 2: to_dict () med 'serie'

Vi vil konvertere merknadene DataFrame til en ordbok i serieformat ved å sende 'serien' -parameteren til TO_DICT () -metoden.

Format:

Importer pandaer
# Opprett DataFrame ved hjelp av lister
Merknader = Pandas.DataFrame ([[23, 'Sravan', 'Pass', 1000],
[21, 'Sravan', 'Fail', 400],
], kolonner = ['id', 'navn', 'status', 'gebyr'])
# Konvertere til ordbok med serie av verdier
trykk (kommentarer.to_dict ('serie'))

Produksjon:

'id': 0 23
1 21
Navn: ID, DType: Int64, 'Navn': 0 Sravan
1 Sravan
Navn: Navn, DType: Objekt, 'Status': 0 Pass
1 mislykkes
Navn: Status, DType: Objekt, 'Fee': 0 1000
1 400
Navn: avgift, dype: int64

Forklaring

DataFrame er konvertert til en ordbok med "serie" -format.

Her ble kolonnene i den originale DataFrame konvertert som nøkler i en ordbok, og hver kolonne vil lagre rader sammen med datatypen på kolonnen. Datatypen av 'ID' -kolonnen er int64 og andre to kolonner er 'objekt'.

Eksempel 3: to_dict () med 'delt'

Hvis du vil skille radetiketter, kolonnetiketter og verdier i den konverterte ordboken, kan du bruke 'Split' -parameteren. Her vil 'indeks' -tasten lagre en liste over indeksetiketter. Kolonner '-tasten vil inneholde en liste over kolonnenavn og data er en nestet liste som lagrer hver radverdier i en liste atskilt med komma.

Format:

Importer pandaer
# Opprett DataFrame ved hjelp av lister
Merknader = Pandas.DataFrame ([[23, 'Sravan', 'Pass', 1000],
[21, 'Sravan', 'Fail', 400],
], kolonner = ['id', 'navn', 'status', 'gebyr'])
# Konverter til ordbok uten indeks og overskrift
trykk (kommentarer.to_dict ('split'))

Produksjon:

'indeks': [0, 1], 'kolonner': ['id', 'Navn', 'Status', 'Fee'], 'Data': [[23, 'Sravan', 'Pass', 1000 ], [21, 'Sravan', 'Fail', 400]]

Forklaring

Vi kan se at to indekser ble lagret i en liste som en verdi for nøkkelen - 'indeks'. Tilsvarende lagres også kolonnenavn i en liste som en verdi for nøkkelen - 'kolonner', og hver rad lagres som en liste i en nestet liste til 'Data'.

Eksempel 4: to_dict () med 'post'

Hvis du konverterer DataFrame til en ordbok med hver rad som ordbok i en liste, kan du bruke postparameteren i TO_DICT () -metoden. Her er hver rad plassert i en ordbok slik at nøkkelen vil være kolonnenavnet og verdien er den faktiske verdien i Pandas DataFrame. Alle rader ble lagret i en liste.

Format:

Importer pandaer
# Opprett DataFrame ved hjelp av lister
Merknader = Pandas.DataFrame ([[23, 'Sravan', 'Pass', 1000],
[21, 'Sravan', 'Fail', 400],
], kolonner = ['id', 'navn', 'status', 'gebyr'])
# Konverter til ordbok etter post
trykk (kommentarer.to_dict ('post'))

Produksjon:

['id': 23, 'navn': 'sravan', 'status': 'pass', 'gebyr': 1000, 'id': 21, 'navn': 'sravan', 'status': 'Fail', 'Fee': 400]

Eksempel 5: to_dict () med 'indeks'

Her er hver rad plassert i en ordbok som en verdi for nøkkelen starter fra 0. Alle rader ble lagret igjen i en ordbok.

Format:

Importer pandaer
# Opprett DataFrame ved hjelp av lister
Merknader = Pandas.DataFrame ([[23, 'Sravan', 'Pass', 1000],
[21, 'Sravan', 'Fail', 400],
], kolonner = ['id', 'navn', 'status', 'gebyr'])
# Konvertere til ordbok med indeks
trykk (kommentarer.to_dict ('indeks'))

Produksjon:

[0: 'id': 23, 'navn': 'sravan', 'status': 'pass', 'gebyr': 1000, 1: 'id': 21, 'name': 'sravan' , 'Status': 'Fail', 'Fee': 400

Eksempel 6: OrderedDict ()

La oss bruke 'inn i' parameter som vil ta Bestillingsdikt, som konverterer Pandas dataaframe til en bestilt ordbok.

Importer pandaer
Fra samlinger import *
# Opprett DataFrame ved hjelp av lister
Merknader = Pandas.DataFrame ([[23, 'Sravan', 'Pass', 1000],
[21, 'Sravan', 'Fail', 400],
], kolonner = ['id', 'navn', 'status', 'gebyr'])
# Konverter til bestillingsdikt
trykk (kommentarer.TO_DICT (Into = ordereddict))

Produksjon:

OrderedDict ([('Id', OrderedDict ([(0, 23), (1, 21)])), ('Navn', OrderedDict ([(0, 'Sravan'), (1, 'Sravan')] )), ('Status', OrderedDict ([(0, 'pass'), (1, 'Fail')])), ('Fee', OrderedDict ([(0, 1000), (1, 400)] )))

Konklusjon

Vi har diskutert hvordan vi kan konvertere DataFrame- eller Pandas -objektene til en Python -ordbok. Vi har sett syntaks for TO_DICT () -funksjonen for å forstå parametrene til denne funksjonen og hvordan du kan endre funksjonens utgang ved å spesifisere funksjonen med forskjellige parametere. I eksemplene på denne opplæringen har vi brukt til_dict () -metoden, en innebygd Pandas -funksjon, for å endre Pandas -objektene til Python Dictionary.