通过Python Scrip进行CSV更改

2024-09-29 23:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd
import numpy as np


a = [['Cliente', 'Fecha', 'Variables', 'Dia Previo', 'Mayor/Menor', 'Dia a Analizar', 'Analisis'],
['AAA', '27/12/2017', 'ECPM_medio', '0.41', 'Dentro del Margen', '0.35', 'Alerta'],
['AAA', '27/12/2017', 'Fill_rate', '2.25', 'Dentro del Margen', '2.7', 'Incremento'],
['AAA', '27/12/2017', 'Importe_a_pagar_a_medio', '62.4', 'Dentro del Margen', '61.21', 'Incremento'],
['AAA', '27/12/2017', 'Impresiones_exchange', '153927.0', 'Dentro del Margen', '173663.0', 'Incremento'],
['AAA', '27/12/2017', 'Subastas', '6827946.0', 'Dentro del Margen', '6431093.0', 'Incremento'],
['BBB', '27/12/2017', 'ECPM_medio', '1.06', 'Dentro del Margen', '1.06', 'Estable'],
['BBB', '27/12/2017', 'Fill_rate', '26.67', 'Dentro del Margen', '27.2', 'Estable'],
['BBB', '27/12/2017', 'Importe_a_pagar_a_medio', '11.34', 'Dentro del Margen', '12.77', 'Estable'],
['BBB', '27/12/2017', 'Impresiones_exchange', '10648.0', 'Dentro del Margen', '12099.0', 'Estable'],
['BBB', '27/12/2017', 'Subastas', '39930.0', 'Dentro del Margen', '44479.0', 'Estable'],
['AAA', '28/12/2017', 'ECPM_medio', '0.41', 'Dentro del Margen', '0.35', 'Estable'],
['AAA', '28/12/2017', 'Fill_rate', '2.25', 'Dentro del Margen', '2.7', 'Estable'],
['AAA', '28/12/2017', 'Importe_a_pagar_a_medio', '62.4', 'Dentro del Margen', '61.21', 'Estable'],
['AAA', '28/12/2017', 'Impresiones_exchange', '153927.0', 'Dentro del Margen', '173663.0', 'Estable'],
['AAA', '28/12/2017', 'Subastas', '6827946.0', 'Dentro del Margen', '6431093.0', 'Estable'],
['BBB', '28/12/2017', 'ECPM_medio', '1.06', 'Dentro del Margen', '1.06', 'Estable'],
['BBB', '28/12/2017', 'Fill_rate', '26.67', 'Dentro del Margen', '27.2', 'Estable'],
['BBB', '28/12/2017', 'Importe_a_pagar_a_medio', '11.34', 'Dentro del Margen', '12.77', 'Estable'],
['BBB', '28/12/2017', 'Impresiones_exchange', '10648.0', 'Dentro del Margen', '12099.0', 'Estable'],
['BBB', '28/12/2017', 'Subastas', '39930.0', 'Dentro del Margen', '44479.0', 'Estable']]


def status(group):
    condiciones = (np.array_equal(group, ("Estable", "Estable", "Estable", "Estable", "Estable")),
                   np.array_equal(group, ("Alerta", "Incremento", "Incremento", "Incremento", "Incremento")))
    resultados = ("Estable", "Crítico")
    return np.select(condiciones, resultados, default="Undetermined")

headers = a.pop(0)
df = pd.DataFrame(a, columns=headers)
df1 = df.groupby(['Cliente', 'Fecha'])["Analisis"].aggregate([('Status', status)])

用我的代码我得到了这个答案:

>>> df1
                     Status
Cliente Fecha              
AAA     27/12/2017  Crítico
        28/12/2017  Estable
BBB     27/12/2017  Estable
        28/12/2017  Estable

我需要的是我的输出是我显示的,但也添加了某些值​​例如Importe_a_pagar_a_medioSubastadas

>>> df1

Cliente Fecha       Status  Importe a pagar   Subastadas      
AAA     27/12/2017  Crítico 61.21             6431093.0
        28/12/2017  Estable 61.21             6431093.0
BBB     27/12/2017  Estable 12.77             44479.0
        28/12/2017  Estable 12.77             44479.0

值得澄清的是,我需要添加Dia a Analizar列,该列包含我在查找的输出中显示的数据


Tags: npfillbbbdelaaapagarclientefecha

热门问题