¿Cómo incluir el porcentaje en la tabla dinámica en Pandas?

Seaborn es una increíble biblioteca de visualización para el trazado de gráficos estadísticos en Python. Proporciona hermosos estilos predeterminados y paletas de colores para hacer que los gráficos estadísticos sean más atractivos. Está construido en la parte superior de la biblioteca matplotlib y también está estrechamente integrado en las estructuras de datos de pandas .

La tabla dinámica se utiliza para resumir datos que incluyen varios conceptos estadísticos. Para calcular el porcentaje de una categoría en una tabla dinámica, calculamos la relación entre el recuento de categorías y el recuento total. A continuación se muestran algunos ejemplos que muestran cómo incluir un porcentaje en una tabla dinámica:

Ejemplo 1:

En la figura a continuación, se creó la tabla dinámica para el conjunto de datos dado donde se calculó el porcentaje de género.

Python3

# importing pandas library
import pandas as pd
  
# creating dataframe
df = pd.DataFrame({'Name': ['John', 'Sammy', 'Stephan', 'Joe', 'Emily', 'Tom'],
                   'Gender': ['Male', 'Female', 'Male',
                              'Female', 'Female', 'Male'],
                   'Age': [45, 6, 4, 36, 12, 43]})
print("Dataset")
print(df)
print("-"*40)
  
# categorizing in age groups
def age_bucket(age):
    if age <= 18:
        return "<18"
    else:
        return ">18"
  
df['Age Group'] = df['Age'].apply(age_bucket)
  
# calculating gender percentage
gender = pd.DataFrame(df.Gender.value_counts(normalize=True)*100).reset_index()
gender.columns = ['Gender', '%Gender']
df = pd.merge(left=df, right=gender, how='inner', on=['Gender'])
  
# creating pivot table
table = pd.pivot_table(df, index=['Gender', '%Gender', 'Age Group'], 
                       values=['Name'], aggfunc={'Name': 'count',})
  
# display table
print("Table")
print(table)

Producción:

Ejemplo 2:

Aquí hay otro ejemplo que muestra cómo calcular el porcentaje de una variable a su suma total en una columna en particular:

Python3

# importing required libraries
import pandas as pd
import matplotlib.pyplot as plt
  
# creating dataframe
df = pd.DataFrame({
    'Name': ['John', 'Emily', 'Smith', 'Joe'],
    'Gender': ['Male', 'Female', 'Male', 'Female'],
    'Salary(in $)': [20, 40, 35, 28]})
  
print("Dataset")
print(df)
print("-"*40)
  
# creating pivot table
table = pd.pivot_table(df, index=['Gender', 'Name'])
  
# calculating percentage
table['% Income'] = (table['Salary(in $)']/table['Salary(in $)'].sum())*100
  
# display table
print("Pivot Table")
print(table)

Producción:

Publicación traducida automáticamente

Artículo escrito por d2anubis 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 *