Ich habe einen Pandas, der 6x3 ist und die Spalten stellen mal dar.Funktion auf Datensatz anwenden, um dynamisch zu ersetzen
Ich möchte Werte auf Bedingungen ersetzen:
def substituteMin(x,n,c,k):
if x < (1 - c)^n+sqrt(k):
x = (1 - c)^n+sqrt(k)
else:
pass
return x
df1 = df.apply(lambda x: compareMin(x, x.name))
print (df1)
wobei c und k konstant sind. Und n ist der Spaltenname. Es gibt mir den Fehler
"ValueError: ('The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().', u'occurred at index 1.0')"
Ich versuchte Funktion zu betrachten ersetzen, aber sie funktionierte nicht.
> „Ich habe einen ** Panda **, die 6x3 ist und die Spalten repräsentieren Zeiten“ - Was füttern Sie es? – ThrowingSpoon
was sind 'n, c, k'? Sind sie Konstanten? – MaxU
Der Fehler besteht darin, dass Sie einen Vergleich für eine Serie durchführen und einen einzelnen Wert zurückgeben. Pandas/Python weiß nicht, welchen einzelnen Wert zurückgegeben werden soll, wenn ein Teil der Serie True ist und ein Teil der Serie False ist. Daher die "mehrdeutige" Ausnahme. Sie können die Funktion wie all() oder any() verwenden, um die Reihe True/False auf einen Wert zu reduzieren. –