Pandas統計函數


統計方法有助於理解和分析數據的行為。現在我們將學習一些統計函數,可以將這些函數應用到Pandas的對象上。

pct_change()函數

系列,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()) 
Python

執行上面示例代碼,得到以下結果 -

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
Shell

默認情況下,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)) 
Python

執行上面示例代碼,得到以下結果 -

0.0667296739178 
Python

當應用於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()) 
Python

執行上面示例代碼,得到以下結果 -

-0.406796939839
          a         b         c         d         e
a  0.784886 -0.406797  0.181312  0.513549 -0.597385
b -0.406797  0.987106 -0.662898 -0.492781  0.388693
c  0.181312 -0.662898  1.450012  0.484724 -0.476961
d  0.513549 -0.492781  0.484724  1.571194 -0.365274
e -0.597385  0.388693 -0.476961 -0.365274  0.785044
Shell

注 - 觀察第一個語句中ab列之間的cov結果值,與由DataFrame上的cov返回的值相同。

相關性

相關性顯示了任何兩個數值(系列)之間的線性關系。有多種方法來計算pearson(默認),spearmankendall之間的相關性。

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

執行上面示例代碼,得到以下結果 -

-0.613999376618
          a         b         c         d         e
a  1.000000 -0.613999 -0.040741 -0.227761 -0.192171
b -0.613999  1.000000  0.012303  0.273584  0.591826
c -0.040741  0.012303  1.000000 -0.391736 -0.470765
d -0.227761  0.273584 -0.391736  1.000000  0.364946
e -0.192171  0.591826 -0.470765  0.364946  1.000000
Shell

如果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()) 
Python

執行上面示例代碼,得到以下結果 -

a    4.0
b    1.5
c    3.0
d    1.5
e    5.0
dtype: float64
Shell

Rank可選地使用一個默認為true的升序參數; 當錯誤時,數據被反向排序,也就是較大的值被分配較小的排序。

Rank支持不同的tie-breaking方法,用方法參數指定 -

  • average - 並列組平均排序等級
  • min - 組中最低的排序等級
  • max - 組中最高的排序等級
  • first - 按照它們出現在數組中的順序分配隊列


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM