Python Pandas - İstatistiksel İşlevler
İstatistiksel yöntemler, verilerin davranışının anlaşılmasına ve analiz edilmesine yardımcı olur. Şimdi Pandas nesnelerine uygulayabileceğimiz birkaç istatistiksel işlevi öğreneceğiz.
Yüzde değişimi
Seriler, DatFrame'ler ve Panel, hepsi işleve sahiptir pct_change(). Bu işlev, her öğeyi önceki öğesiyle karşılaştırır ve değişim yüzdesini hesaplar.
import pandas as pd
import numpy as np
s = pd.Series([1,2,3,4,5,4])
print s.pct_change()
df = pd.DataFrame(np.random.randn(5, 2))
print df.pct_change()
Onun output aşağıdaki gibidir -
0 NaN
1 1.000000
2 0.500000
3 0.333333
4 0.250000
5 -0.200000
dtype: float64
0 1
0 NaN NaN
1 -15.151902 0.174730
2 -0.746374 -1.449088
3 -3.582229 -3.165836
4 15.601150 -1.860434
Varsayılan olarak, pct_change()sütunlar üzerinde çalışır; aynı satırı akıllıca uygulamak istiyorsanız, o zaman kullanınaxis=1() argüman.
Kovaryans
Kovaryans, seri verilere uygulanır. Series nesnesi, seri nesneler arasındaki kovaryansı hesaplamak için bir yöntem koduna sahiptir. NA otomatik olarak hariç tutulacaktır.
Cov Serisi
import pandas as pd
import numpy as np
s1 = pd.Series(np.random.randn(10))
s2 = pd.Series(np.random.randn(10))
print s1.cov(s2)
Onun output aşağıdaki gibidir -
-0.12978405324
Bir DataFrame'e uygulandığında kovaryans yöntemi hesaplar cov tüm sütunlar arasında.
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print frame['a'].cov(frame['b'])
print frame.cov()
Onun output aşağıdaki gibidir -
-0.58312921152741437
a b c d e
a 1.780628 -0.583129 -0.185575 0.003679 -0.136558
b -0.583129 1.297011 0.136530 -0.523719 0.251064
c -0.185575 0.136530 0.915227 -0.053881 -0.058926
d 0.003679 -0.523719 -0.053881 1.521426 -0.487694
e -0.136558 0.251064 -0.058926 -0.487694 0.960761
Note - cov arasında a ve b İlk ifadedeki sütun ve aynı DataFrame'de cov tarafından döndürülen değerdir.
Korelasyon
Korelasyon, herhangi iki değer dizisi (seri) arasındaki doğrusal ilişkiyi gösterir. Korelasyonu hesaplamak için pearson (varsayılan), spearman ve kendall gibi birden fazla yöntem vardır.
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print frame['a'].corr(frame['b'])
print frame.corr()
Onun output aşağıdaki gibidir -
-0.383712785514
a b c d e
a 1.000000 -0.383713 -0.145368 0.002235 -0.104405
b -0.383713 1.000000 0.125311 -0.372821 0.224908
c -0.145368 0.125311 1.000000 -0.045661 -0.062840
d 0.002235 -0.372821 -0.045661 1.000000 -0.403380
e -0.104405 0.224908 -0.062840 -0.403380 1.000000
DataFrame'de sayısal olmayan herhangi bir sütun varsa, otomatik olarak hariç tutulur.
Veri Sıralaması
Veri Sıralaması, öğeler dizisindeki her öğe için sıralama üretir. Beraberlik durumunda, ortalama sırayı belirler.
import pandas as pd
import numpy as np
s = pd.Series(np.random.np.random.randn(5), index=list('abcde'))
s['d'] = s['b'] # so there's a tie
print s.rank()
Onun output aşağıdaki gibidir -
a 1.0
b 3.5
c 2.0
d 3.5
e 5.0
dtype: float64
Sıra isteğe bağlı olarak, varsayılan olarak doğru olan artan bir parametre alır; yanlış olduğunda, veriler ters sıralanır ve daha büyük değerlere daha küçük bir sıra atanır.
Rank, method parametresiyle belirtilen farklı bağ bozma yöntemlerini destekler -
average - bağlı grubun ortalama sıralaması
min - gruptaki en düşük rütbe
max - gruptaki en yüksek rütbe
first - dizide göründükleri sırayla atanan sıralar