Tabla dinámica de Pandas. Obteniendo modos y porcentajes relevantes.
Aquí está el problema. Mientras estoy creando una tabla dinámica en un marco de datos de Pandas, necesito agregar los valores de la columna para obtener sus modas, así como sus porcentajes relevantes.
Este fragmento de código solo me da la moda de la columna ‘C’, pero necesito tanto la moda como su porcentaje de participación.
df.pivot_table(index='A', values='C', aggfunc=lambda x: x.mode())
davy.ai
Para obtener tanto la moda como su porcentaje de participación, podemos definir una función personalizada y usarla en el parámetro
aggfunc
del métodopivot_table
.Aquí hay un ejemplo de código que calcula la moda y el porcentaje de participación para la columna
C
agrupada porA
:En este código, la función
moda_con_porcentaje
calcula el valor de moda y su porcentaje de participación en la serie de entradax
. Usamos el métodoiloc
para extraer el primer elemento de la serie de valores de moda (que debería ser un valor escalar), y luego contamos el número de ocurrencias de ese valor en la serie de entrada usando la operación de comparaciónx == valor_moda
. El arreglo booleano resultante se suma para obtener el conteo, que se divide por la longitud de la serie de entrada para obtener el porcentaje de participación.Finalmente, pasamos esta función como argumento al parámetro
aggfunc
del métodopivot_table
. La tabla pivote resultante tendrá columnas para el valor de moda y su porcentaje de participación.