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())
Résultat de l'exécution :
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()对列进行操作;如果要明智地应用同一行,请使用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))
Résultat de l'exécution :
-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())
Résultat de l'exécution :
-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
Observons la valeur cov entre les colonnes a et b de la première instruction, ce qui est le même que la valeur cov retournée par DataFrame.
La corrélation montre la relation linéaire entre deux valeurs d'un tableau de valeurs (séquence). Il existe plusieurs méthodes pour calculer la corrélation, telles que pearson (par défaut), spearman et 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())
Résultat de l'exécution :
-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
Si le DataFrame contient des colonnes non numériques, elles seront automatiquement exclues.
Le classement des données place un rang à chaque élément de l'array d'éléments. Si il y a un match, un rang moyen est attribué.
import pandas as pd import numpy as np s = pd.Series(np.random.np.random.randn(5), index=list('abcde')) s['d'] = s['b'] # there's a tie print(s.rank())
Résultat de l'exécution :
a 1.0 b 3.5 c 2.0 d 3.5 e 5.0 dtype: float64
Rank peut choisir de trier les paramètres en ordre croissant, par défaut il est true ; si false, le classement des données est inversé, les valeurs plus grandes sont attribuées aux rangs plus petits.
Rank prend en charge l'utilisation du paramètre method :
average − La moyenne des rangs des groupes adjacents. min − Le rang le plus bas du groupe. max − Le rang le plus élevé du groupe. first − L'ordre des colonnes et des lignes est assigné dans l'ordre où elles apparaissent dans le tableau.