Promedio ponderado de pandas

Promedio ponderado de pandas

El promedio ponderado es el promedio de los datos que identifican los números específicos que son más importantes que los otros números en el marco de datos. Implementaremos todas las formas posibles en las que se puede calcular el promedio ponderado de Pandas con la ayuda de varios ejemplos.

Fórmula

(valores_column*pesos_column).sum ()/pesas_column.suma()

Aquí, Values_Column es la columna numérica en el marco de datos de Pandas que almacena los valores, y pesos_column es la columna numérica que almacenará el peso de cada valor.

Método 1: Promedio ponderado de retorno

Usemos la función personalizada que calcula el promedio ponderado del marco de datos de Pandas. Usaremos la función suma () para calcular la suma en el siguiente cálculo:

Sum (dataFrame_Object [weight_data]*dataFrame_Object [value_data])/dataFrame_Object [weight_data].suma()

Aquí, Weight_Data es la columna en el marco de datos que contiene pesos para los valores en la columna Value_Data.

Ejemplo

En este ejemplo, tenemos un marco de datos llamado 'cálculos' con 2 columnas de tipo entero. Ahora, crearemos una función personalizada, 'PESUDED_AVG_CALCULACION', para calcular el promedio ponderado y llamar a la función con estas dos columnas pasándolas como argumentos.

importación de pandas
# Crear el marco de datos con 2 columnas y 5 filas
Cálculos = pandas.Marco de datos.from_dict ('cuenta': [7,8,9,0,4],
'Cantidad': [2,3,4,5,2]
)
# Muestra DataFrame - Cálculos
Imprimir (cálculos)
# Función personalizada que calcula el promedio ponderado
Def PESUDED_AVG_CALCULACIÓN (Cálculos, value_data, weight_data):
Sume de retorno (cálculos [weight_data] * cálculos [value_data])/cálculos [weight_data].suma()
imprimir()
# Llame a la función pasando el DataFrame, 'Cantidad' como value_data y 'contar' como weight_data
print (weavesed_avg_calculation (cálculos, 'cantidad', 'contar'))

Producción

Cuenta de cantidad
0 7 2
1 8 3
2 9 4
3 0 5
4 4 2
2.9285714285714284

Explicación

Entonces, la función personalizada es:

Devolverá el promedio ponderado.

Entonces, el promedio ponderado del marco de datos anterior es 2.92.

Método 2: Promedio ponderado de retorno en grupos

Ahora, usaremos la función GroupBy () para agrupar las filas y devolver el promedio ponderado en cada grupo. El método Apply () se usa junto con el grupo () que toma el promedio ponderado y las columnas como parámetros.

DataFrame_Object.Groupby ('Grouping_Column').Aplicar (Pesoned_Avg_Calculation, 'Value_Data', 'Weight_Data')

Aquí, las filas se agruparon en función de los valores en 'Grouping_Column'. El PESUDED_AVG_CALCULME es una función personalizada que calcula el promedio ponderado. El weight_data es la columna en DataFrame que contiene pesos para los valores en la columna Value_Data.

Ejemplo

En este ejemplo, tenemos un marco de datos llamado 'cálculos' con 3 columnas. Ahora, crearemos una función personalizada, 'PESUDED_AVG_CALCULATION', para calcular el promedio ponderado y llamar a la función con las dos columnas pasándolas como argumentos. Agruparemos las filas en función de la columna de 'ítem' y devolveremos el promedio ponderado en cada grupo.

importación de pandas
# Crear el marco de datos con 3 columnas y 5 filas
Cálculos = pandas.Marco de datos.from_dict ('Count': [12,34,56,10,15],
'Cantidad': [100,200,345,670,50],
'Artículo': ['plástico', 'hierro', 'hierro', 'acero', 'plástico']
)
# Muestra DataFrame - Cálculos
Imprimir (cálculos)
# Función personalizada que calcula el promedio ponderado
Def PESUDED_AVG_CALCULACIÓN (Cálculos, value_data, weight_data):
Sume de retorno (cálculos [weight_data] * cálculos [value_data])/cálculos [weight_data].suma()
imprimir()
Imprimir (cálculos.Groupby ('Artículo').Aplicar (PESUDED_AVG_CALCULACIÓN, 'Cantidad', 'contar'))

Producción

CUENTA CANTIDAD
0 12 100 Plastic
1 34 200 Hierro
2 56 345 Hierro
3 10 670 acero
4 15 50 Plastic
artículo
Iron 290.222222
plástico 72.222222
acero 670.000000
dtype: float64

Explicación

Entonces, la función personalizada es:

Devolverá el promedio ponderado.

Hay tres grupos en los cálculos DataFrame.

  1. El promedio ponderado para el grupo 'hierro' es 290.22
  2. El promedio ponderado para el grupo 'plástico' es 72.22
  3. El promedio ponderado para el grupo 'acero' es 670.00

Método 3: Volver promedio ponderado con Numpy

El módulo Numpy admite la función promedio () en la que podemos pasar los valores y los pesos y obtener el promedio ponderado del marco de datos de Pandas.

  1. En el primer parámetro, necesitamos pasar la columna de valores.
  2. En el segundo parámetro, asignaremos la columna 'Datos de peso' a los pesos.

numpy.promedio (dataFrame_Object ['value_data'], pesos = dataFrame_Object ['weight_data'])

Ejemplo

En este ejemplo, tenemos un marco de datos llamado 'cálculos' con 2 columnas. Usaremos directamente numpy.promedio () para calcular el promedio ponderado.

importación de pandas
importar numpy
# Crear el marco de datos con 2 columnas y 5 filas
Cálculos = pandas.Marco de datos.from_dict ('Count': [12,34,56,10,15],
'Cantidad': [100,200,345,670,50]
)
# Muestra DataFrame - Cálculos
Imprimir (cálculos)
imprimir()
Impresión (Numpy.promedio (cálculos ['cantidad'], pesos = cálculos ['cuent'))

Producción:

Cuenta de cantidad
0 12 100
1 34 200
2 56 345
3 10 670
4 15 50
273.7795275590551
dtype: float64

Explicación

Aquí, la columna de cantidad será el valor, y el recuento será los pesos.

El promedio ponderado es 273.77.

Conclusión

El promedio ponderado de Pandas es una función valiosa y técnica. Hemos realizado la función personalizada del promedio ponderado de pandas y el promedio ponderado de pandas numpy. El promedio es algo que necesitamos calcular en casi todo, incluso los presupuestos de pequeñas comestibles. Por lo tanto, cuando se habla de los millones de datos, la función promedio de pandas ponderada es un placer para todos los usuarios que trabajan en los cálculos promedio de datos específicos en sus campos.