Pandas 統計函式

2021-10-23 02:18:23 字數 3341 閱讀 9200

統計方法有助於理解和分析資料的行為。現在我們將學習一些統計函式,可以將這些函式應用到pandas的物件上。

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

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

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.0667296739178
當應用於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.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

注 - 觀察第乙個語句中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())

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

-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

如果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    4.0

b 1.5

c 3.0

d 1.5

e 5.0

dtype: float64

rank可選地使用乙個預設為true的公升序引數; 當錯誤時,資料被反向排序,也就是較大的值被分配較小的排序。

rank支援不同的tie-breaking方法,用方法引數指定 -

Pandas統計特徵函式

python中用於資料探索的庫主要是pandas和matplotlib,pandas提供了大量與資料探索相關的函式。這些統計特徵函式能反映出資料的整體分布,主要作為pandas的物件dataframe或series的方法出現。sum 計算資料樣本的總和 按列計算 mean 計算資料樣本的算術平均數 ...

Pandas 統計函式與apply

import numpy as np import pandas as pd from pandas import series,dataframe方法 說明count 非na值的數量 describe 針對series或各dataframe列計算匯 計 min max 計算最小值和最大值 argm...

Pandas 描述統計函式

在進行統計描述時,pandas對三個資料物件的軸引數規定如下 series 沒有軸引數 dataframe index axis 0,default columns axis 1 panel items axis 0 major axis 1,default minor axis 2 統計描述引數如...