如何通过迭代熊猫数据框来填充函数参数

时间:2020-03-13 04:54:50

标签: python pandas dataframe for-loop iteration

我正在尝试迭代数据框“ indicadores”以填充函数“ Rangos”,它应该返回一个元组,每行带有一个数据框。

这是我的代码:

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)

每个DataFrame的结果应该不同。

希望你能帮助我!

谢谢!

0 个答案:

没有答案