adlı df
adı verilen varsayalım. df
sütunları farklı kişileri temsil eder ve indeks ekseni zamanı temsil eder, bu nedenle (i, j) girişi, zaman periyodu için bireysel j gözlemidir ve tüm verilerin NaN
değerleriyle muhtemelen float
tipi olduğunu varsayabiliriz.Python Pandalar korelasyon matrisi girdileri için ortak gözlem sayılarını görmenin hızlı yolu
Benim durumumda, yaklaşık 14.000 sütun ve birkaç yüz satırım var.
pandas.corr
14,000 - 14000 arasındaki korelasyon matrisini bana geri verecek ve zaman performansı benim uygulamam için iyi.
Ayrıca bilmek istiyorum, her bir çift için (j_1, j_2), kaç tane null olmayan gözlem korelasyon hesaplamasına girdi, bu yüzden zayıf veri kapsamından muzdarip olan korelasyon hücrelerini izole edebilirim. Bunun
not_null_locations = pandas.notnull(df).values.astype(int)
common_obs = pandas.DataFrame(not_null_locations.T.dot(not_null_locations),
columns=df.columns, index=df.columns)
bellek ayak izi ve hız biraz sorunlu olmaya başlar:
Ben ile gelip başardık iyi
şudur.pandas
ile ortak gözlemlere ulaşmanın daha hızlı bir yolu var mı?
; doğrudan cevap vermez ama size bir 'yeterince iyi' verebilir – Jeff
cevap Bu harika bir öneri, ancak Pandas sürüm 0.8.0 gerektiren bir üretim sisteminde çalışıyorum ve 'min_periods' daha yeni bir sürümde eklenmiş gibi görünüyor. – ely
Eğer * linux (oldukça kolay) ..... sadece bir çift satır değişikliği (eğer 'üretim' belki de bunu engelleyebilir ....) eğer kodu (ve yeniden derlemek) ekleyebilirsiniz * – Jeff