Mam obiekt pandas.DataFrame, który zawiera około 100 kolumn i 200000 wierszy danych. Próbuję przekonwertować go do ramek danych bool gdzie True oznacza, że wartość jest większa niż próg, False oznacza, że jest mniejsza, a wartości NaN są utrzymywane.Zachowanie NaNs z nierównościami ramek danych pandy
Jeśli nie ma wartości NaN, trwa około 60 ms dla mnie do uruchomienia:
df >= threshold
Ale gdy próbuję radzić sobie z Nans, poniższa metoda działa, ale jest bardzo powolny (20 sek).
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)))
Czy jest szybszy sposób?
Spróbuj zastąpić 'func' z tej linii:' powrócić x> = próg jeśli x nie ma innego x', może to być szybciej. BTW dlaczego przydzieliłeś dwa 'lambda x'? 'df.apply (func)' zrobi lewy. – DeepSpace
@DeepSpace, które trwały w tym samym czasie – jsignell