Ich habe ein Pandas.DataFrame-Objekt, das etwa 100 Spalten und 200000 Zeilen von Daten enthält. Ich versuche, es zu einem Bool-Datenrahmen zu konvertieren, wobei True bedeutet, dass der Wert größer als der Schwellenwert ist, False bedeutet, dass es kleiner ist, und NaN-Werte werden beibehalten.Keeping NaNs mit Pandas Dataframe Ungleichungen
Wenn es keine NaN-Werte sind, dauert es etwa 60 ms für mich zu laufen:
df >= threshold
Aber wenn ich versuche, mit dem NaNs zu behandeln, die unter Methode funktioniert, ist aber sehr langsam (20 sec).
def func(x):
if x >= threshold:
return True
elif x < threshold:
return False
else:
return x
df.apply(lambda x: x.apply(lambda x: func(x)))
Gibt es einen schnelleren Weg?
Versuchen Sie, 'func' mit dieser Linie zu ersetzen:' return x> = Schwellenwert, wenn x nicht Keine sonst x' ist, kann es schneller sein. BTW warum hast du zwei 'Lambda x' zugewiesen? 'df.apply (func)' wird den Trick machen. – DeepSpace
@DeepSpace, die die gleiche Zeit in Anspruch nahmen – jsignell