Pandaları kullanarak her sütunda farklı değerlerin sayısını bulmaya çalışıyorum. Yaptığım buydu.Her sütunda DataFrame'de farklı öğelerin sayısını bulma
import pandas as pd
df = pd.read_csv('train.csv')
# print(df)
a = pd.unique(df.values.ravel())
print(a)
O bakılmaksızın satır/sütun DataFrame benzersiz unsurları sayar, ama aşağıda olarak biçimlendirilmiş çıkışı ile her sütun için saymak gerekir. Bu yöntem 1.5GB daha büyük boyuta sahip dosyaları uygulanacak olarak
policyID 0
statecode 0
county 0
eq_site_limit 0
hu_site_limit 454
fl_site_limit 647
fr_site_limit 0
tiv_2011 0
tiv_2012 0
eq_site_deductible 0
hu_site_deductible 0
fl_site_deductible 0
fr_site_deductible 0
point_latitude 0
point_longitude 0
line 0
construction 0
point_granularity 0
Ne, bunu yapmanın en etkili yolu olurdu?
Yanıtlara dayanarak, df.apply(lambda x: len(x.unique()))
en hızlıdır.
In[23]: %timeit df.apply(pd.Series.nunique)
1 loops, best of 3: 1.45 s per loop
In[24]: %timeit df.apply(lambda x: len(x.unique()))
1 loops, best of 3: 335 ms per loop
In[25]: %timeit df.T.apply(lambda x: x.nunique(), axis=1)
1 loops, best of 3: 1.45 s per loop
versiyonunda olacaktır. Aynı şekilde df.apply (pd.Series.nunique) 'nin de çalışacağını düşünüyorum (ve eğer bir sorun varsa, transpoze ihtiyacını ortadan kaldırır) . –
@ajcr evet aslında daha iyi, başlangıçta, transpozisyonun sütunları indeks değerleri olarak elde etmek için gerekli olduğunu düşündüm – EdChum
Toplam benzersiz olay sayısı nasıl sayılır? –