Yaklaşık 100 sütun ve 200000 veri satırı içeren bir pandas.DataFrame nesnesine sahibim. Bunu, true değerinin eşikten büyük olduğu anlamına gelen bir bool veri çerçevesine dönüştürmeye çalışıyorum. Yanlış, daha az olduğu anlamına gelir ve NaN değerleri korunur. Hiçbir NaN değer varsaNavi'leri pandalarla tutarak veri kümesi eşitsizlikleri
, yayınlanmaya benim için yaklaşık 60 ms gerekir:
df >= threshold
Ama NaN'ler başa çalıştığınızda, aşağıdaki yöntemi (20 sn çalışır, ancak çok yavaş).
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)))
Daha hızlı bir yol var mı?
deneyin bu hat ile 'func' yerine:' x Yok başka x' değilse x> = eşiği dönmek, daha hızlı olabilir. BTW neden iki lambda x' atadınız? 'df.apply (func)' hile yapacak. – DeepSpace
@DeepSpace aynı süreyi aldı – jsignell