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

Pandas Statistikfunktionen

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

Laufende Ergebnisse:

 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将被自动排除。

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

Laufende Ergebnisse:

   -0.12978405324

将协方差方法应用于DataFrame时,将计算所有列之间的cov。

 import pandas as pd
 import numpy as np
 frame = pd.DataFrame(np.random.randn(10, 5), Spalten=['a', 'b', 'c', 'd', 'e'])
 print(frame['a'].cov(frame['b']))
 print(frame.cov())

Laufende Ergebnisse:

 -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

Beobachten Sie den cov-Wert zwischen den Spalten a und b in der ersten Anweisung, der dem von cov im DataFrame zurückgegebenen Wert entspricht.

Korrelation

Korrelation zeigt die lineare Beziehung zwischen zwei Wertemengen (Sequenzen) an. Es gibt verschiedene Methoden zur Berechnung der Korrelation, wie z.B. pearson (Standard), spearman und kendall.

 import pandas as pd
 import numpy as np
 frame = pd.DataFrame(np.random.randn(10, 5), Spalten=['a', 'b', 'c', 'd', 'e'])
 print(frame['a'].corr(frame['b']))
 print(frame.corr())

Laufende Ergebnisse:

 -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

Falls im DataFrame eine nicht numerische Spalte vorhanden ist, wird diese automatisch ausgeschlossen.

Datenrangfolge

Datenrangfolge führt eine Rangfolge für jedes Element im Elementarray durch. Bei Gleichstand wird eine durchschnittliche Rangfolge zugewiesen.

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

Laufende Ergebnisse:

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

Rank kann die Parameter in aufsteigender Reihenfolge auswählen, Standardmäßig ist dies true; wenn dies false ist, wird die Datenreihenfolge umgekehrt und größere Werte erhalten kleinere Ränge.

Rank unterstützt die Verwendung von method-Parameter:

average − Durchschnittliche Bewertung der parallelen Sets. min − Niedrigster Rang im Set. max − Höchstes Niveau im Set. first − Die Reihenfolge der Zuweisung der Zeilen und Spalten entspricht der Reihenfolge ihrer Erscheinung im Array.