Pandas Stack

Pandas Stack

Pandas -stabelen brukes til å stable dataene fra kolonnens sekvens til indeksmåten. Den returnerer flere indeksnivåer som vises i en ny DataFrame. Vi vil implementere hvordan vi kan bruke Pandas Stack () -funksjonen.

Syntaks

Pandas.DataFrame_Object.stabel (nivå = -1, dropna = true)

Parametere

  1. Nivå - Det tar en heltallparameter som vil spesifisere stablingsnivået.
    1. Vi kan angi nivåer som nivå - 0,1 osv.
  2. Dropna - Denne andre parameteren, “Dropna”, brukes til å slippe rader i den stablede DataFrame med NAN -verdier.

Scenario 1: Kolonne på ett nivå

Lag en dataaframe med 3 kolonner og 5 rader. Her er kolonnenavnene - ["Eksamen", "Marks", "Resultat"].

Nå vil vi stable DataFrame:

Importer pandaer
Resultater = pandaer.DataFrame ([["Internt", 98, "Pass"],
["Internt", 45, "Fail"],
["Ekstern", 89, "pass"],
["Ekstern", 67, "pass"],
["Ekstern", 18, "Fail"]],
kolonner = ["Eksamenstype", "Marks", "Resultat"],
indeks = ['Ram', 'Sravan', 'Govind', 'Anup', 'Jab']
)
trykk (resultater, "\ n")
# Bruk stack () på kolonne på enkeltnivå
trykk (resultater.stable())

Produksjon

Eksamensstype Marks Resultat
Ram Internt 98 Pass
Sravan Internt 45 mislykkes
Govind ekstern 89 passering
Anup ekstern 67 pass
Jab ekstern 18 mislykkes
Ram eksamen type intern
Merker 98
Resultat passering
Sravan eksamensstype intern
Merker 45
Resultatet mislykkes
Govindeksamen type ekstern
Merker 89
Resultat passering
ANUP eksamen type ekstern
Merker 67
Resultat passering
Jab eksamen type ekstern
Merker 18
Resultatet mislykkes
dtype: objekt

Forklaring

Nå vises den stablede DataFrame. La oss diskutere dette i detalj for en rad.

RAM - eksamensstype er 'intern', RAM - Marks er 98, og RAM - Resultatet er 'Fail'. Tilsvarende kan du for alle de gjenværende radene se at verdiene er stablet.

Scenario 2: Kolonne på flere nivåer med nivå - 0

En av følgende måter i Python for å lage en multiindex er ved å bruke multiindex.from_tuples () -metoden. Det vil ta kolonnenavn i listen over tuples som en parameter. Til slutt vil vi sende dette til "kolonnene" -parameteren i Pandas dataaframe.

Syntaks

Multiindex.fra_tuples ([('kolonner,…),…]

Eksempel 1

Lag en dataaframe med rader som har multiindex. Stakk DataFrame med nivå-0.

Importer pandaer
Resultater = pandaer.DataFrame ([["Internt", 98, "Pass"],
["Internt", 45, "Fail"],
["Ekstern", 89, "pass"],
["Ekstern", 89, "pass"],
["Ekstern", 45, "Fail"]],
indeks = ['Ram', 'Sravan', 'Govind', 'Anup', 'Jab'],
Kolonner = Pandas.Multiindex.fra_tuples ([('eksamener', 'eksamens type'), ('merker sikret', 'total'), ('status', 'resultat')]
))
trykk (resultater, "\ n")
# Bruk stack () med nivå-0 på kolonne på flere nivåer
trykk (resultater.stabel (nivå = 0))

Produksjon

Eksamener merker sikret status
Eksamenstype Totalt resultat
Ram Internt 98 Pass
Sravan Internt 45 mislykkes
Govind ekstern 89 passering
Anup ekstern 89 passering
Jab ekstern 45 mislykkes
Eksamensresultat totalt
RAM -eksamener intern nan nan
Merker sikret nan nan 98.0
Status nan pass nan
Sravan -eksamener intern nan nan
Merker sikret nan nan 45.0
Status nan mislykkes nan
Govindeksamener ekstern nan nan
Merker sikret nan nan 89.0
Status nan pass nan
ANUP -eksamener ekstern nan nan
Merker sikret nan nan 89.0
Status nan pass nan
JAB -eksamener ekstern nan nan
Merker sikret nan nan 45.0
Status nan mislykkes nan

Forklaring

Du kan se multi -indeksene. For raden:

  1. RAM - for indeks 'eksamener' og 'eksamensstype' - verdien er .Innvendig.
  2. RAM - For indeks 'eksamener' og 'resultat' - verdien er NAN (ikke et tall).
  3. RAM - for indeks 'eksamener' og 'total' - verdien er nan.
  4. RAM - for indeks 'merker sikret' og 'eksamensstype' - verdien er nan.
  5. Ram - for indeks 'merker sikret' og 'resultat' - verdien er nan.
  6. RAM - for indeks 'merker sikret' og 'totalt' - verdien er 98.0.
  7. RAM - For indeks 'Status' og 'eksamensstype' - verdien er nan.
  8. RAM - for indeks 'status' og 'resultat' - verdien er "pass".
  9. Ram - for indeks 'status' og 'total' - verdien er nan

Tilsvarende skjedde for alle rader stabling i forrige format. For tapte verdier erstattes NAN.

Eksempel 2

Lag en dataaframe med rader som har multiindex. Stakk DataFrame med nivå 2.

Importer pandaer
Resultater = pandaer.DataFrame ([["Internt", 98, "Pass"],
["Internt", 45, "Fail"],
["Ekstern", 89, "pass"],
["Ekstern", 67, "pass"],
["Ekstern", 18, "Fail"]],
indeks = ['Ram', 'Sravan', 'Govind', 'Anup', 'Jab'],
Kolonner = Pandas.Multiindex.fra_tuples ([('eksamener', 'eksamens type'), ('merker sikret', 'total'), ('status', 'resultat')]
))
# Bruk stack () med nivå-1 på kolonne på flere nivåer
trykk (resultater.stabel (nivå = 1))

Produksjon

Eksamener merker sikret status
Ram eksamen type intern nan nan
Resultat Nan Nan Pass
Totalt NAN 98.0 Nan
Sravan eksamens type intern nan nan
Resultat Nan Nan mislykkes
Totalt NAN 45.0 Nan
Govindeksamen type ekstern nan nan
Resultat Nan Nan Pass
Totalt NAN 89.0 Nan
ANUP eksamen type ekstern nan nan
Resultat Nan Nan Pass
Totalt NAN 67.0 Nan
Jab eksamen type ekstern nan nan
Resultat Nan Nan mislykkes
Totalt NAN 18.0 Nan

Konklusjon

Pandas “Stack” er en ekstravagant teknikk for å stable nivåkolonnene i rader (indeks). I områdene der arbeidere trenger å jobbe på radene i stedet for kolonnene eller kanskje vil ha dataene på radmåten, men de har gjort det i kolonner, er denne metoden for dem. Det vil spare deres dyrebare tid ved å bruke metoden til Pandas Stack. Vi har gjort forskjellige måter Pandas Stack fungerer i henhold til situasjonen. Hver situasjon har sin måte å løse problemet for å gi de ønskede resultatene i DataFrame.