Python-pandas-statistical-functions
Pythonパンダ-統計関数
統計的手法は、データの動作の理解と分析に役立ちます。 ここで、Pandasオブジェクトに適用できるいくつかの統計関数を学習します。
変化率
シリーズ、DatFrames、およびパネルには、すべて* 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()は列に対して機能します。同じ行を適用する場合は、 axis = 1()*引数を使用します。
共分散
共分散は系列データに適用されます。 Seriesオブジェクトには、シリーズオブジェクト間の共分散を計算するメソッドcovがあります。 NAは自動的に除外されます。
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)
その*出力*は次のとおりです-
-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
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
注-最初のステートメントの a と b 列の間の cov を観察します。これは、DataFrameのcovによって返される値です。
相関
相関関係は、任意の2つの値の配列(系列)の間の線形関係を示しています。 ピアソン(デフォルト)、スピアマン、ケンドールなど、相関を計算する方法は複数あります。
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
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
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
ランクは、オプションで、デフォルトでtrueであるパラメータの昇順を取ります。 falseの場合、データは逆ランク付けされ、値が大きいほど小さいランクが割り当てられます。
ランクは、メソッドパラメータで指定されたさまざまなタイブレークメソッドをサポートしています-
- 平均-同順位グループの平均ランク
- min -グループ内の最低ランク
- max -グループ内の最高ランク
- first -配列に現れる順序で割り当てられたランク