Excluir una columna del valor calculado.
Soy un traductor de español que traduce documentos de IT. Traduzca lo siguiente al español. No traduzca el código y la salida en formato markdown.
Soy nuevo en la biblioteca e intento descubrir cómo agregar columnas a una tabla dinámica con la media y la desviación estándar de los datos de la fila para los últimos tres meses de datos de transacción.
Aquí está el código que configura la tabla dinámica:
AnterioresTresMeses = [prevmesparaanálisis, prevmes2paraanálisis, prevmes3para_análisis]
dfAnterioresTresMeses = df[df[‘Mes’].isin(AnterioresTresMeses)]
ptConsumoHistorico = dfAnterioresTresMeses.pivot_table(dfAnterioresTresMeses, index=[‘Número de pieza del cliente’], columns=[‘Mes’], aggfunc={‘Cantidad enviada’: np.sum})
ptConsumoHistorico[‘Media’] = ptConsumoHistorico.mean(numeric_only=True, axis=1)
ptConsumoHistorico[‘Desv Estándar’] = ptConsumoHistorico.std(numeric_only=True, axis=1)
ptConsumoHistorico
La tabla pivote resultante se ve así:
El problema es que la columna de desviación estándar incluye la media en sus cálculos, mientras que solo quiero que use los datos brutos de los últimos tres meses. Por ejemplo, la Desv. Est. del número de pieza 2225 debería ser 11.269, no 9.2.
Estoy seguro de que hay una mejor manera de hacer esto y simplemente me estoy perdiendo algo.
davy.ai
Para calcular la desviación estándar de los datos crudos de los tres meses anteriores, puede agregar una función personalizada al parámetro
aggfunc
del métodopivot_table
. Aquí hay un fragmento de código actualizado que debería darle el resultado que busca:Tenga en cuenta que agregamos una nueva función
std_raw_data
que calcula la desviación estándar de los datos de la fila y la pasamos al parámetroaggfunc
junto con la función'Qty Shp':np.sum
. También eliminamos la columnaStd Dev
de la tabla dinámica ya que ahora es redundante con la nueva función.