En este artículo, vamos a ver cómo crear tablas de referencias cruzadas a partir de diccionarios en Python. La función de tabulación cruzada de pandas crea una tabla de tabulación cruzada que puede mostrar la frecuencia con la que aparecen ciertos grupos de datos.
Sintaxis: pandas.crosstab(índice, columnas, valores=Ninguno, nombres de filas=Ninguno, nombres de columnas=Ninguno, aggfunc=Ninguno, márgenes=False, margins_name=’All’, dropna=True, normalize=False)
Argumentos:
- índice: similar a una array, serie o lista de arrays/series, valores para agrupar en las filas.
- columnas: tipo array, serie o lista de arrays/series, valores para agrupar en las columnas.
- valores : tipo array, opcional, array de valores para agregar según los factores. Requiere que se especifique `aggfunc`.
- nombres de fila: secuencia, predeterminado Ninguno, si se pasa, debe coincidir con el número de arrays de filas pasadas.
- colnames: secuencia, predeterminado Ninguno, si se pasa, debe coincidir con el número de arrays de columnas pasadas.
- aggfunc: función, opcional, si se especifica, requiere que también se especifiquen `valores`.
- margins : bool, default False, Agregar márgenes de fila/columna (subtotales).
- margins_name : str, por defecto ‘Todos’, Nombre de la fila/columna que contendrá los totales cuando los márgenes sean Verdaderos.
- dropna: bool, predeterminado True, no incluya columnas cuyas entradas sean todas NaN.
*** QuickLaTeX cannot compile formula: *** Error message: Error: Nothing to show, formula is empty
Implementación paso a paso:
Paso 1: crea un diccionario.
Python3
raw_data = {'Digimon': ['Kuramon', 'Pabumon', 'Punimon', 'Botamon', 'Poyomon', 'Koromon', 'Tanemon', 'Tsunomon', 'Tsumemon', 'Tokomon'], 'Stage': ['Baby', 'Baby', 'Baby', 'Baby', 'Baby', 'In-Training', 'In-Training', 'In-Training', 'In-Training', 'In-Training'], 'Type': ['Free', 'Free', 'Free', 'Free', 'Free', 'Free', 'Free', 'Free', 'Free', 'Free'], 'Attribute': ['Neutral', 'Neutral', 'Neutral', 'Neutral', 'Neutral', 'Fire', 'Plant', 'Earth', 'Dark', 'Neutral'], 'Memory': [2, 2, 2, 2, 2, 3, 3, 3, 3, 3], 'Equip Slots': [0, 0, 1, 1, 1, 1, 1, 1, 1, 1], 'Lv 50 HP': [324, 424, 5343, 52, 63, 42, 643, 526, 42, 75], 'Lv50 SP': [86, 75, 64, 43, 86, 64, 344, 24, 24, 12], 'Lv50 Atk': [86, 74, 6335, 421, 23, 36436, 65, 75, 86, 52]} print(raw_data)
Producción:
{‘Digimon’: [‘Kuramon’, ‘Pabumon’, ‘Punimon’, ‘Botamon’, ‘Poyomon’, ‘Koromon’, ‘Tanemon’, ‘Tsunomon’, ‘Tsumemon’, ‘Tokomon’], ‘Escenario’ : [‘Bebé’, ‘Bebé’, ‘Bebé’, ‘Bebé’, ‘Bebé’, ‘En formación’, ‘En formación’, ‘En formación’, ‘En formación’, ‘En formación ‘], ‘Tipo’: [‘Gratis’, ‘Gratis’, ‘Gratis’, ‘Gratis’, ‘Gratis’, ‘Gratis’, ‘Gratis’, ‘Gratis’, ‘Gratis’, ‘Gratis’], ‘ Atributo’: [‘Neutral’, ‘Neutral’, ‘Neutral’, ‘Neutral’, ‘Neutral’, ‘Fuego’, ‘Planta’, ‘Tierra’, ‘Oscuro’, ‘Neutral’], ‘Memoria’: [ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3], ‘Equipar espacios’: [0, 0, 1, 1, 1, 1, 1, 1, 1, 1], ‘Lv 50 HP’: [324, 424, 5343, 52, 63, 42, 643, 526, 42, 75], ‘Lv50 SP’: [86, 75, 64, 43, 86, 64, 344, 24, 24, 12], ‘Nv50 ATQ’: [86, 74, 6335, 421, 23, 36436, 65, 75, 86, 52]}
*** QuickLaTeX no puede compilar la fórmula: *** Mensaje de error: Error: nada que mostrar, la fórmula está vacía
Paso 2: Cree un marco de datos utilizando la función Marco de datos de Pandas.
Python3
import pandas as pd raw_data_df = pd.DataFrame(raw_data,columns= ['Digimon','Stage', 'Type', 'Attribute', 'Memory','Equip Slots', 'Lv 50 HP','Lv50 SP', 'Lv50 Atk']) print(raw_data_df)
Producción:
Paso 3: Uso de tabulaciones cruzadas.
Python3
import pandas as pd raw_data_df=pd.DataFrame(raw_data,columns= ['Digimon','Stage', 'Type', 'Attribute','Memory', 'Equip Slots', 'Lv 50 HP','Lv50 SP', 'Lv50 Atk']) print(raw_data_df)
Producción:
También puede agregar varios índices (filas) a una tabla cruzada. Esto se puede hacer pasando una lista de variables a la función de tabulación cruzada, si desea desglosar los elementos por región y trimestre, puede pasarlos al parámetro de índice.
Python3
raw_data_fd = pd.crosstab( [raw_data_df['Attribute'], raw_data_df['Memory']], raw_data_df['Digimon'], margins=True) raw_data_fd
Producción
Publicación traducida automáticamente
Artículo escrito por utkarshrastogi9149 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA