Как заполнить параметры функций путем итерации pandas кадра данных - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь выполнить итерацию Dataframe «indicadores», чтобы заполнить функцию «Rangos», и она должна вернуть мне кортеж с DataFrame на строку.

это мой код:

import pandas as pd

def Rango(Estandar, Pronostico, Meta):
    Tolerancia = float(Estandar*0.6)+float(Meta*0.2)+float(Pronostico*0.2)
    x = float(Tolerancia/3)
    n_3 = Tolerancia
    n_2 = float(Tolerancia - x)
    n_1 = (n_2 - float(n_2/3))
    n_4 = (n_3 + x)
    n_5 = (n_4 + float(n_4/3))
    rangos = pd.DataFrame({"1": [n_1],
                       "2": [n_2],
                       "3": [n_3],
                       "4": [n_4],
                       "5": [n_5]})
    return rangos


indicadores = pd.DataFrame({ "Estandar": [162, 150, 170],
                            "Pronostico": [165, 163, 150],
                            "Meta": [155, 170, 145]})
In[91]: indicadores
Out[91]: 
   Estandar  Pronostico  Meta
0       162         165   155
1       150         163   170
2       170         150   145



def rangos(Dataset):
    for index, row in indicadores.iterrows():
        x = (Rango(row['Estandar'], row['Pronostico'], row["Meta"]))
        y = (Rango(row['Estandar'], row['Pronostico'], row["Meta"]))
        z = (Rango(row['Estandar'], row['Pronostico'], row["Meta"]))
    return x,y,z

x = rangos(indicadores)

In[94]: x
Out[94]: 
(           1           2      3           4           5
 0  71.644444  107.466667  161.2  214.933333  286.577778,
            1           2      3           4           5
 0  71.644444  107.466667  161.2  214.933333  286.577778,
            1           2      3           4           5
 0  71.644444  107.466667  161.2  214.933333  286.577778)

результаты должны быть разными для каждого фрейма данных.

надеюсь, вы мне поможете!

Заранее спасибо!

...