es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cálculo del porcentaje de precios negativos durante un período de tres años con pandas.

Df = ['FY', 'FECHA', 'HORA', 'PRECIO']

Tengo varios miles de valores en cada columna. En la columna de precio tengo tanto valores negativos como positivos. Quiero calcular el porcentaje de valores negativos en la columna de precio por año fiscal. Es decir, cual es el porcentaje de valores negativos para la columna de HORA por año fiscal.

He separado los valores por np.where(['precio'] < 0 , 1, 0]) y luego he utilizado groupby para contar las observaciones pero estoy confundido acerca de cómo calcular los porcentajes.

AÑOFIN TRIMESTRE MES FECHA PRECIO Neg
2017 3 7 2016-07-01 00:30:00 292.91 False
2017 3 7 2016-07-01 01:00:00 112.63 False
2017 3 7 2016-07-01 01:30:00 75.52 False
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para calcular el porcentaje de valores negativos en la columna de precios para los FY, puede agrupar los datos por FY y el signo de los valores de precios (positivo o negativo) utilizando “groupby” y “sum”, luego calcular el porcentaje utilizando el método “transform”.

    Aquí hay un ejemplo de código:

    import pandas as pd
    
    # suponga que los datos se almacenan en un DataFrame llamado df
    # crear una nueva columna para indicar si el precio es negativo o positivo
    df ['Neg'] = df ['PRICE'] < 0
    
    # agrupar los datos por FY y el signo de los valores de precios
    agrupado = df.groupby (['FY', 'Neg']) ['TIME'].count ()
    
    # calcular el recuento total para cada FY
    count_by_fy = grouped.groupby(level=0).sum()
    
    # calcular el porcentaje de valores negativos para cada FY utilizando transform
    porcentaje_por_fy = agrupado.transform (lambda x: (x / count_by_fy[x.index[0][0]]) * 100)
    
    # imprimir el resultado
    print(porcentaje_por_fy)
    

    Esto devolverá una nueva columna en su DataFrame llamada Neg_percent que contiene el porcentaje de valores negativos en la columna de precios para cada FY.

Comments are closed.