Pandas Crosstab -funksjon

Pandas Crosstab -funksjon
"Crosstab ()" -funksjonen i pandaer oppretter en tverr-tabulasjonstabell som viser frekvensen som de spesifikke datasettene vises. "Crosstab ()" -metoden er en av de flere teknikkene i pandaer som lar deg restrukturere dataene dine. Dette innlegget forklarer hvordan du bruker "Crosstab ()" -funksjonen.

Crosstab () Syntaks:

Pandas.Crosstab (indeks, kolonner, verdier = ingen, rownames = ingen, colnames = ingen, marginer = falsk, margins_name = 'all', dropna = true, normalize = falsk)

Parametere:

  1. Her er den første parameteren "indeks" som er verdiene som brukes som utdata DataFrames indeks. Det kan være en matrise, serie eller flere matriser eller serier.
  2. "Kolonnene" er de genererte DataFrames kolonner.
  3. "Verdiene" er verdiene som brukes til å beregne statistikken gitt av "AGG _FUNC".
  4. "RowNames" er navnet (e) som er tildelt radene i den resulterende DataFrame. "RowNames = none" er standardinnstillingen for dette argumentet.
  5. "Colnames" er kolonnenavnet (e) som er gitt til utdataene DataFrame. “Colnames = none” er standardinnstillingen. Denne funksjonens inngang er "verdier" og returelementet er den aggregerte statistikken som gjennomsnittlig, maksimum osv.
  6. "Marginene" bestemmer om du vil legge til en ekstra rad og kolonne som viser summen av cellene radmessig så vel som kolonnemessig. "Margin = falsk" er standardinnstillingen.
  7. "Margins-Name" er tittelen på den nylig vedlagte raden og kolonnen hvis "marginene" er konfigurert til "True".
  8. "Dropna" bestemmer om de skal fjerne kolonnene med bare NAN -verdier. "Dropna = False" er standardkonfigurasjonen.
  9. "Normaliseringen" forteller om de skal normalisere de oppnådde tall ved å dele med totalen.

Eksempel 1:
Lag en DataFrame med 5 kolonner og generer en beredskapstabell (Cross Tab) ved å stille inn x-aksen som "Alternativ2" -kolonne og Y-aksen som "Navn" -kolonne.

Importer pandaer
# Lag en DataFrame med 5 kolonner
MyData = Pandas.DataFrame ([[1, "Sravan", "Cloud Technology", "Databases", 89],
[2, "Sravan", "Python", "Frontend Programming", 98],
[3, "Sravan", "Elective 1", "Databases", 50],
[5, "Satwik", "PHP", "Databases", 99],
[6, "Diba", "PHP", "Databases", 19],
[9, "Diba", "Elective 1", "Frontend Programming", 54],
],
kolonner = ["Eksamen ID", "Navn", "Alternativ1", "Alternativ2", "Marks"]
)
trykk (mydata, "\ n")
# La oss bruke Crosstab () -funksjonen
frekvens = pandaer.Crosstab (MyData.Alternativ2, MyData.Navn)
Print (frekvens)

Produksjon:

Forklaring:
Vi passerer "Alternativ2" -kolonnen som x-akse og "Navn" -kolonnen som Y-Axis. Nå kan du se i forrige illustrasjon at frekvensbordet er generert. La oss analysere det.

  1. “Databaser” - “Diba” holder bare 1, “Satwik” også 1 og “Sravan” 2.
  2. “Frontend -programmering” - “Diba” holder bare 1, “Satwik” holder 0, og “Sravan” er også 1.

Eksempel 2:
Bruk den samme dataaframe og generer en beredskapstabell (Cross Tab) ved å stille inn x-aksen som "Alternativ1" og "Alternativ2" -kolonner og Y-aksen som "Navn" -kolonne.

Importer pandaer
# Lag en DataFrame med 5 kolonner
MyData = Pandas.DataFrame ([[1, "Sravan", "Cloud Technology", "Databases", 89],
[2, "Sravan", "Elective 1", "Frontend Programming", 98],
[3, "Sravan", "Elective 1", "Databases", 50],
[5, "Satwik", "PHP", "Databases", 99],
[6, "Diba", "PHP", "Databases", 19],
[9, "Diba", "PHP", "Frontend Programming", 54],
],
kolonner = ["Eksamen ID", "Navn", "Alternativ1", "Alternativ2", "Marks"]
)
# La oss bruke Crosstab () -funksjonen
frekvens = pandaer.Crosstab ([MyData.Alternativ1, MyData.alternativ2], mydata.Navn)
Print (frekvens)

Produksjon:

Forklaring:
Vi passerer “Alternativ1” og “Alternativ2” -kolonner som x-aksen gjennom en liste og "Navn" -kolonnen som Y-Axis. Nå kan du se i forrige illustrasjon at frekvensbordet er generert.

Eksempel 3: Angi marginene
Nå oppretter vi en beredskapstabell for "Alternativ2" og "Navn" -kolonner ved å stille inn marginene og gi marginnavnene som "Total Count".

Importer pandaer
# Lag en DataFrame med 5 kolonner
MyData = Pandas.DataFrame ([[1, "Sravan", "Cloud Technology", "Databases", 89],
[2, "Sravan", "Elective 1", "Frontend Programming", 98],
[3, "Sravan", "Elective 1", "Databases", 50],
[5, "Satwik", "PHP", "Databases", 99],
[6, "Diba", "PHP", "Databases", 19],
[9, "Diba", "PHP", "Frontend Programming", 54],
],
kolonner = ["Eksamen ID", "Navn", "Alternativ1", "Alternativ2", "Marks"]
)
# La oss bruke Crosstab () -funksjon ved å stille inn marginer og margins_navn -parameter
frekvens = pandaer.Crosstab (MyData.Alternativ2, MyData.Navn, marginer = true, margins_name = "Total Count")
Print (frekvens)

Produksjon:

Forklaring:
Vi passerer marginene og setter dem til True og Margins_name til “Total Count”. Marginene opprettes og den totale summen av verdier for aksen returneres som 6.

Over rader:

  1. For “Databaser” - 1+1+2 = 4
  2. For “Frontend -programmering” - 1+0+1 = 2

Total telling er 6.

Over kolonner:

  1. For “diba” - 1+1 = 2
  2. For “Satwik” - 1+0 = 1
  3. For “Sravan” - 2+1 = 3

Total telling er 6.

Eksempel 4: Angi normaliseringsverdiene
Nå oppretter vi en beredskapstabell for “Alternativ2” og “Navn” -kolonner ved å normalisere verdiene.

Importer pandaer
# Lag en DataFrame med 5 kolonner
MyData = Pandas.DataFrame ([[1, "Sravan", "Cloud Technology", "Databases", 89],
[2, "Sravan", "Elective 1", "Frontend Programming", 98],
[3, "Sravan", "Elective 1", "Databases", 50],
[5, "Satwik", "PHP", "Databases", 99],
[6, "Diba", "PHP", "Databases", 19],
[9, "Diba", "PHP", "Frontend Programming", 54],
],
kolonner = ["Eksamen ID", "Navn", "Alternativ1", "Alternativ2", "Marks"]
)
# La oss bruke Crosstab () -funksjonen ved å stille normaliseringsparameteren til å indeksere.
frekvens = pandaer.Crosstab (MyData.Alternativ2, MyData.Navn, normalisere = 'indeks')
Print (frekvens)

Produksjon:

Forklaring:
Vi passerer normaliseringsparameteren og setter den til “indeks”. Det returnerer prosentandelen av hver forekomst.

Den totale tellingen er 6.

  1. I “Databaser” - for “Diba” - 1 blant 4 => er den normaliserte verdien 0.25.
  2. I “Databaser” - for “Satwik” - 1 blant 4 => er den normaliserte verdien 0.25.
  3. I "Databaser" - for "Sravan" - 2 blant 4 => den normaliserte verdien er 0.5.
  4. I "Frontend -programmering" - for "Diba" - 1 blant 2 => er den normaliserte verdien 0.50.
  5. I "Frontend -programmering" - for "Satwik" - 0 blant 2 => den normaliserte verdien er 0.00.
  6. I "Frontend -programmering" - for "Sravan" - 1 blant 2 => den normaliserte verdien er 0.5.

Konklusjon

Denne artikkelen er skrevet for å gi deg ideen og få deg til å forstå begrepet beregning av kryss-tabuleringen for dataanalyse. Pandas gir oss en haug med nyttige funksjoner. Av dem, “Pandas.Crosstab () ”er en. Vi benyttet denne metoden i denne læringen for å beregne kryss-tabuleringen og vurderte de fleste av parametrene for demonstrasjon.