English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Пример действия статистических функций 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 будет автоматически исключен.
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 − Порядок распределения строк и столбцов в массиве, в котором они появляются.