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_medio
和Subastadas
:
>>> 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
列,该列包含我在查找的输出中显示的数据
目前没有回答
相关问题 更多 >
编程相关推荐