Python Pandas - funkcje statystyczne

Metody statystyczne pomagają w zrozumieniu i analizie zachowania danych. Nauczymy się teraz kilku funkcji statystycznych, które możemy zastosować na obiektach Pandas.

Percent_change

Serie, ramki danych i panel - wszystkie mają tę funkcję pct_change(). Ta funkcja porównuje każdy element z jego poprzednim elementem i oblicza procent zmiany.

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()

Jego output wygląda następująco -

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

Domyślnie pct_change()działa na kolumnach; jeśli chcesz zastosować ten sam wiersz mądrze, użyjaxis=1() argument.

Kowariancja

Kowariancja jest stosowana do danych szeregowych. Obiekt Series ma metodę cov do obliczenia kowariancji między obiektami serii. NA zostanie automatycznie wykluczona.

Seria Cov

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)

Jego output wygląda następująco -

-0.12978405324

Metoda kowariancji po zastosowaniu w DataFrame oblicza cov między wszystkimi kolumnami.

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()

Jego output wygląda następująco -

-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 - Obserwuj cov pomiędzy a i b kolumna w pierwszej instrukcji i to samo jest wartością zwracaną przez cov w DataFrame.

Korelacja

Korelacja przedstawia liniową zależność między dowolnymi dwiema tablicami wartości (szeregami). Istnieje wiele metod obliczania korelacji, takich jak Pearson (domyślnie), Spearman i Kendall.

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()

Jego output wygląda następująco -

-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

Jeśli jakakolwiek nieliczbowa kolumna jest obecna w DataFrame, jest automatycznie wykluczana.

Ranking danych

Ranking danych tworzy ranking dla każdego elementu w tablicy elementów. W przypadku remisów przypisuje średnią rangę.

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()

Jego output wygląda następująco -

a  1.0
b  3.5
c  2.0
d  3.5
e  5.0
dtype: float64

Ranga opcjonalnie przyjmuje parametr rosnący, który domyślnie ma wartość true; jeśli fałsz, dane są klasyfikowane w odwrotnej kolejności, a większe wartości mają mniejszą rangę.

Rank obsługuje różne metody rozstrzygające, określone za pomocą parametru metody -

  • average - średnia ranga zremisowanej grupy

  • min - najniższa pozycja w grupie

  • max - najwyższa pozycja w grupie

  • first - rangi przypisane w kolejności, w jakiej pojawiają się w tablicy