我正在尝试迭代数据框“ 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的结果应该不同。
希望你能帮助我!
谢谢!