¿Cómo crear tablas de referencias cruzadas desde un diccionario en Python?

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *