Angenommen, ich habe Datenrahmen.Erstellen der Spalte basierend auf Werten aus anderen Spalten in Pandas + Iteration
Zusätzlich habe ich 2 Listen:
se_bench = []
tu_bench= []
Ich möchte die Funktion wie erstellen:
def calculation(row):
if row['var_1'] == #something:
return (se_bench[1]/tu_bench[1])* turnover.iloc[i,]
elif row['var_1'] == #something else:
return (se_bench[2]/tu_bench[2])* turnover.iloc[i,]
df.apply(lambda row: calculation(row),axis = 1)
wo 'var_1' und 'Umsatz' Variablen in Datenrahmen. Wie kann ich turnover.iloc[i,]
durch jede Zeile iterieren?
Ich denke, es ist möglich, es durch for-Schleife zu tun, aber ist es möglich, es mit der Funktion anwenden zu tun?
EDIT:
mit for-Schleife funktioniert es so etwas wie es:
#Or alternative:
se = []
for i in range(len(df.index)):
if df['var_1'] == #something:
seva.append((se_bench[1]/tu_bench[1])* turnover.iloc[i,])
elif row['var_1'] == #something else:
seva.append((se_bench[1]/tu_bench[1])* turnover.iloc[i,])
else:
seva.append(np.nan)
df['seva'] = pd.Series(seva,index = df.index)
In dem obigen Code sollte 'turnover.iloc [i,]' 'df.turnover.iloc [i,]' sein, wenn 'Umsatz' eine Variable/Spalte in 'df' ist. Ich hoffe auch, dass Sie wissen, dass 'df ['var_1'] ==' Serien vergleicht und wenn Sie Werte vergleichen wollen, dann sollte es im Schleifencode wieder 'iloc' verwenden –