"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:
- 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.
- "Kolonnene" er de genererte DataFrames kolonner.
- "Verdiene" er verdiene som brukes til å beregne statistikken gitt av "AGG _FUNC".
- "RowNames" er navnet (e) som er tildelt radene i den resulterende DataFrame. "RowNames = none" er standardinnstillingen for dette argumentet.
- "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.
- "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.
- "Margins-Name" er tittelen på den nylig vedlagte raden og kolonnen hvis "marginene" er konfigurert til "True".
- "Dropna" bestemmer om de skal fjerne kolonnene med bare NAN -verdier. "Dropna = False" er standardkonfigurasjonen.
- "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.
- “Databaser” - “Diba” holder bare 1, “Satwik” også 1 og “Sravan” 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:
- For “Databaser” - 1+1+2 = 4
- For “Frontend -programmering” - 1+0+1 = 2
Total telling er 6.
Over kolonner:
- For “diba” - 1+1 = 2
- For “Satwik” - 1+0 = 1
- 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.
- I “Databaser” - for “Diba” - 1 blant 4 => er den normaliserte verdien 0.25.
- I “Databaser” - for “Satwik” - 1 blant 4 => er den normaliserte verdien 0.25.
- I "Databaser" - for "Sravan" - 2 blant 4 => den normaliserte verdien er 0.5.
- I "Frontend -programmering" - for "Diba" - 1 blant 2 => er den normaliserte verdien 0.50.
- I "Frontend -programmering" - for "Satwik" - 0 blant 2 => den normaliserte verdien er 0.00.
- 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.