English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Статистические функции Pandas

Пример действия статистических функций Pandas

Статистические методы помогают понимать и анализировать поведение данных. Теперь мы будем изучать некоторые статистические функции, которые можно применить к объектам Pandas.

Изменение процента

Series, DatFrames и Panel имеют функцию pct_change(). Эта функция сравнивает каждый элемент с предыдущим и рассчитывает процент изменения.

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

Результат выполнения:

 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

По умолчанию, pct_change() operates on columns; если нужно разумно применить его к одному ряду, используйте параметр axis = 1().

Ковариация

Ковариация применяется к последовательным данным. Объекты серии имеют метод cov для расчета ковариации между объектами серии. NA будет автоматически исключен.

Cov Series

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

Результат выполнения:

   -0.12978405324

При применении метода ковариации к DataFrame, рассчитывается cov всех столбцов.

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

Результат выполнения:

 -0.58312921152741437
           a           b           c            d            e
1.780628   -0.583129   -0.185575    0.003679    -0.136558
-0.583129    1.297011    0.136530   -0.523719     0.251064
-0.185575    0.136530    0.915227   -0.053881    -0.058926
-0.003679   -0.523719   -0.053881    1.521426    -0.487694
-0.136558    0.251064   -0.058926   -0.487694     0.960761

Наблюдайте значение cov между столбцами a и b в первом предложении, это соответствует значению cov, возвращаемому на DataFrame.

Коэффициент корреляции

Коэффициент корреляции показывает линейную зависимость между любыми двумя значениями массива (серии). Есть несколько методов расчета корреляции, например pearson (по умолчанию), spearman и 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())

Результат выполнения:

 -0.383712785514
           a          b          c          d            e
1.000000  -0.383713  -0.145368   0.002235   -0.104405
-0.383713   1.000000   0.125311  -0.372821    0.224908
-0.145368   0.125311   1.000000  -0.045661   -0.062840
-0.002235  -0.372821  -0.045661   1.000000   -0.403380
e -0.104405 0.224908 -0.062840 -0.403380 1.000000

Если в DataFrame есть любые غیرчисловые столбцы, они автоматически исключаются.

Ранжирование данных

Ранжирование данных выполняет排名 для каждого элемента массива. Если есть равенства, то присваивается средний рейтинг.

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

Результат выполнения:

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

Rank можно выбрать, чтобы параметр был отсортирован по возрастанию, по умолчанию это true; если false, то данные排名 обратным образом,较大的 значения присваиваются较小的 рейтингом.

Rank поддерживает использование параметра method:

average − Средний рейтинг параллельных групп. min − Самый низкий рейтинг в группе. max − Самый высокий уровень в группе. first − Порядок распределения строк и столбцов в массиве, в котором они появляются.