Fonction Pandas Crosstab

Fonction Pandas Crosstab
La fonction «crosstab ()» dans Pandas crée un tableau de réduction qui affiche la fréquence à laquelle les ensembles spécifiques de données apparaissent. La méthode «Crosstab ()» est l'une des nombreuses techniques de Pandas qui vous permet de restructurer vos données. Cet article explique comment utiliser la fonction «crosstab ()».

Syntaxe Crosstab ():

pandas.CROSSTAB (index, colonnes, valeurs = aucun, Rownames = Aucun, colNames = Aucun, marges = false, margins_name = 'all', dropna = true, normalise = false)

Paramètres:

  1. Ici, le premier paramètre est «index» qui est les valeurs qui sont utilisées comme index de la sortie Dataframe. Il peut s'agir d'un tableau, d'une série ou de plusieurs tableaux ou séries.
  2. Les «colonnes» sont les colonnes de DataFrame générées.
  3. Les «valeurs» sont les valeurs utilisées pour calculer les statistiques fournies par «agg _func».
  4. Le «Rownames» est le (s) nom (s) qui est alloué aux lignes dans le dataframe qui en résulte. Le "Rownames = Aucun" est le paramètre par défaut de cet argument.
  5. Le «ColNames» est le ou les noms de colonne qui sont donnés à la sortie Dataframe. Le "ColNames = Aucun" est le paramètre par défaut. L'entrée de cette fonction est des «valeurs» et l'élément de retour est la statistique agrégée telle que la moyenne, le maximum, etc.
  6. Les «marges» déterminent s'il faut ajouter une ligne et une colonne supplémentaires qui affichent la somme des cellules sur la ligne et la colonne en termes de colonne. Le «margin = false» est le paramètre par défaut.
  7. Le «nom de marges» est le titre de la nouvelle ligne et de la colonne si les «marges» sont configurées en «vrai».
  8. Le «dropna» détermine s'il faut supprimer les colonnes avec seulement des valeurs nan. Le «dropna = false» est la configuration par défaut.
  9. Le «normalisation» indique s'il faut normaliser les nombres obtenus en divisant par le total.

Exemple 1:
Créez un DataFrame avec 5 colonnes et générez une table d'urgence (onglet croisé) en définissant l'axe X en tant que colonne «Option2» et axe Y comme colonne «Nom».

importer des pandas
# Créer un DataFrame avec 5 colonnes
mydata = pandas.DataFrame ([[1, "Sravan", "Cloud Technology", "Databases", 89],
[2, "Sravan", "Python", "Frontend Programming", 98],
[3, "Sravan", "Elective 1", "Databases", 50],
[5, "Satwik", "PHP", "Bases de données", 99],
[6, "diba", "php", "bases de données", 19],
[9, "Diba", "Elective 1", "Frontend Programming", 54],
]],
colonnes = ["Examen ID", "nom", "option1", "option2", "marks"]
)
imprimer (mydata, "\ n")
# Utilisons la fonction crosstab ()
fréquence = pandas.crosstab (mydata.Option2, MyData.nom)
Impression (fréquence)

Sortir:

Explication:
Nous passons la colonne «Option2» en tant qu'axe X et la colonne «Nom» en tant qu'axe Y. Maintenant, vous pouvez voir dans l'illustration précédente que le tableau de fréquence est généré. Analysons-le.

  1. «Bases de données» - «Diba» ne contiennent que 1, «Satwik» également 1 et «Sravan» 2.
  2. «Frontend Programming» - «Diba» ne contient que 1, «Satwik» détient 0, et «Sravan» est également 1.

Exemple 2:
Utilisez le même DataFrame et générez une table de contingence (onglet croisé) en définissant l'axe X en tant que colonnes «Option1» et «Option2» et la colonne «Nom».

importer des pandas
# Créer un DataFrame avec 5 colonnes
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", "Bases de données", 99],
[6, "diba", "php", "bases de données", 19],
[9, "Diba", "PHP", "Frontend Programming", 54],
]],
colonnes = ["Examen ID", "nom", "option1", "option2", "marks"]
)
# Utilisons la fonction crosstab ()
fréquence = pandas.crosstab ([mydata.option1, mydata.Option2], MyData.nom)
Impression (fréquence)

Sortir:

Explication:
Nous passons les colonnes «Option1» et «Option2» en tant qu'axe X via une liste et la colonne «Nom» en tant qu'axe Y. Maintenant, vous pouvez voir dans l'illustration précédente que le tableau de fréquence est généré.

Exemple 3: définissez les marges
Maintenant, nous créons une table d'urgence pour les colonnes «Option2» et «Name» en définissant les marges et en fournissant les noms de marge comme «nombre total».

importer des pandas
# Créer un DataFrame avec 5 colonnes
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", "Bases de données", 99],
[6, "diba", "php", "bases de données", 19],
[9, "Diba", "PHP", "Frontend Programming", 54],
]],
colonnes = ["Examen ID", "nom", "option1", "option2", "marks"]
)
# Utilisons la fonction crosstab () en définissant les marges et les marges_name paramètre
fréquence = pandas.crosstab (mydata.Option2, MyData.Nom, marges = true, margins_name = "Total Count")
Impression (fréquence)

Sortir:

Explication:
Nous passons les marges et les définissons sur True et les marges_name au «nombre total». Les marges sont créées et la somme totale des valeurs pour l'axe est renvoyée comme 6.

À travers les lignes:

  1. Pour «bases de données» - 1 + 1 + 2 = 4
  2. Pour «Frontend Programming» - 1 + 0 + 1 = 2

Le nombre total est de 6.

À travers les colonnes:

  1. Pour «diba» - 1 + 1 = 2
  2. Pour «Satwik» - 1 + 0 = 1
  3. Pour «sravan» - 2 + 1 = 3

Le nombre total est de 6.

Exemple 4: Définissez les valeurs de normalisation
Maintenant, nous créons une table d'urgence pour les colonnes «Option2» et «Name» en normalisant les valeurs.

importer des pandas
# Créer un DataFrame avec 5 colonnes
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", "Bases de données", 99],
[6, "diba", "php", "bases de données", 19],
[9, "Diba", "PHP", "Frontend Programming", 54],
]],
colonnes = ["Examen ID", "nom", "option1", "option2", "marks"]
)
# Utilisons la fonction crosstab () en définissant le paramètre de normalisation sur index.
fréquence = pandas.crosstab (mydata.Option2, MyData.nom, normaliser = 'index')
Impression (fréquence)

Sortir:

Explication:
Nous passons le paramètre de normalisation et le définissons sur «Index». Il renvoie le pourcentage de chaque occurrence.

Le nombre total est de 6.

  1. Dans «Bases de données» - pour «diba» - 1 parmi 4 => La valeur normalisée est 0.25.
  2. Dans «Bases de données» - pour «Satwik» - 1 parmi 4 => La valeur normalisée est 0.25.
  3. Dans «Databases» - pour «Sravan» - 2 parmi 4 => La valeur normalisée est 0.5.
  4. Dans «Frontend Programming» - pour «diba» - 1 parmi 2 => La valeur normalisée est 0.50.
  5. Dans «Frontend Programming» - pour «Satwik» - 0 parmi 2 => La valeur normalisée est 0.00.
  6. Dans «Frontend Programming» - pour «Sravan» - 1 parmi 2 => La valeur normalisée est 0.5.

Conclusion

Cet article est écrit pour vous donner l'idée et vous faire comprendre le concept de calcul de la réduction de la tabulation pour l'analyse des données. Pandas nous fournit un tas de fonctionnalités utiles. De quoi, «Pandas.crosstab () ”est un. Nous avons utilisé cette méthode dans cet apprentissage à calculer la touche croisée et considéré la plupart des paramètres de démonstration.