Pandas 統(tǒng)計(jì)函數(shù)

Pandas 統(tǒng)計(jì)函數(shù)的操作實(shí)例

統(tǒng)計(jì)方法有助于理解和分析數(shù)據(jù)的行為?,F(xiàn)在,我們將學(xué)習(xí)一些統(tǒng)計(jì)函數(shù),可以將它們應(yīng)用于Pandas對(duì)象。

百分比變化

Series,DatFrames和Panel都具有功能pct_change()。此函數(shù)將每個(gè)元素與其先前的元素進(jìn)行比較,并計(jì)算更改百分比。

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

運(yùn)行結(jié)果:

 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

默認(rèn)情況下,pct_change()對(duì)列進(jìn)行操作;如果要明智地應(yīng)用同一行,請(qǐng)使用axis = 1()參數(shù)。

協(xié)方差

協(xié)方差應(yīng)用于序列數(shù)據(jù)。系列對(duì)象具有方法cov來計(jì)算系列對(duì)象之間的協(xié)方差。NA將被自動(dòng)排除。

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

運(yùn)行結(jié)果:

   -0.12978405324

將協(xié)方差方法應(yīng)用于DataFrame時(shí),將計(jì)算所有列之間的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())

運(yùn)行結(jié)果:

 -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值,這與cov在DataFrame上返回的值相同。

相關(guān)性

相關(guān)性顯示任意兩個(gè)值數(shù)組(序列)之間的線性關(guān)系。有多種計(jì)算相關(guān)性的方法,例如pearson(默認(rèn)),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())

運(yùn)行結(jié)果:

 -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中存在任何非數(shù)字列,則會(huì)自動(dòng)將其排除。

數(shù)據(jù)排名

數(shù)據(jù)排名對(duì)元素?cái)?shù)組中的每個(gè)元素進(jìn)行排名。如果是平局,則分配平均排名。

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

運(yùn)行結(jié)果:

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

Rank可以選擇將參數(shù)升序,默認(rèn)情況下為true;如果為false,則對(duì)數(shù)據(jù)進(jìn)行反向排名,將較大的值分配為較小的排名。

Rank支持使用method參數(shù):

average ? 并列組的平均等級(jí)。 min ? 組中最低的排名。 max ? 組中最高等級(jí)。 first ? 行列分配在它們出現(xiàn)的數(shù)組中的順序。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清