Pandas 統計函式與apply

2021-08-18 18:11:14 字數 4197 閱讀 9162

import numpy as np

import pandas as pd

from pandas import series,dataframe

方法

說明count

非na值的數量

describe

針對series或各dataframe列計算匯**計

min、max

計算最小值和最大值

argmin、argmax

計算能夠獲取到最小值和最大值的索引位置

idxmin、idxmax

計算能夠獲取到最小值和最大值的索引值

quantile

計算樣本的分位數

sum值的總和

mean

值的平均數

median

值的算術中位數

mad根據平均值計算平均絕對離差

var樣本值的方差

std樣本值的標準差

skew

樣本值的偏度

kurt

樣本值的峰度

cumsum

樣本值的累計和

cummin、cummax

樣本值的累計最大值和累計最小值

cumprod

樣本值的累計積

diff

計算一階差分

pct_change

計算百分數變化

df = dataframe([[1.4,np.nan],[7.1,-4.5],

[np.nan,np.nan],[0.75,-1.3]],

index = ['a','b','c','d'],

columns = [1,2])

print(df)

1    2

a 1.40 nan

b 7.10 -4.5

c nan nan

d 0.75 -1.3

df.sum() # 行求和
1    9.25

2 -5.80

dtype: float64

df.sum(axis=1) # 列求和
a    1.40

b 2.60

c 0.00

d -0.55

dtype: float64

df.sum(skipna=false) # 不忽略nan值
1   nan

2 nan

dtype: float64

df.idxmax()
1    b

2 d

dtype: object

print(df.cumsum())
1    2

a 1.40 nan

b 8.50 -4.5

c nan nan

d 9.25 -5.8

print(df.describe()) # 按列
1         2

count 3.000000 2.000000

mean 3.083333 -2.900000

std 3.493685 2.262742

min 0.750000 -4.500000

25% 1.075000 -3.700000

50% 1.400000 -2.900000

75% 4.250000 -2.100000

max 7.100000 -1.300000

s1 = series([1,3,5,6,9])

s2 = series([2,3,4,6,9])

計算兩個series中重疊的、非na的,按索引對齊的值的協方差

s1.cov(s2)
8.1999999999999993
計算相關係數

s1.corr(s2)
0.974259335869603
df = dataframe(np.random.rand(9).reshape(3,3),index=['a','b','c'],columns=['e','f','g'])

print(df)

e         f         g

a 0.146858 0.129654 0.904029

b 0.914438 0.698205 0.970205

c 0.041829 0.938332 0.823483

計算列的協方差矩陣

print(df.cov())
e         f         g

e 0.226943 0.023656 0.031214

f 0.023656 0.172479 -0.010457

g 0.031214 -0.010457 0.005399

計算列的相關係數

print(df.corr())
e         f         g

e 1.000000 0.119568 0.891737

f 0.119568 1.000000 -0.342684

g 0.891737 -0.342684 1.000000

o = series(['a','b','a','c','d','c'])

o.unique()

array(['a', 'b', 'c', 'd'], dtype=object)
o.value_counts()
c    2

a 2

d 1

b 1

dtype: int64

o.isin(['a','b'])
0     true

1 true

2 true

3 false

4 false

5 false

dtype: bool

f = lambda x:x.max()-x.min() # 極差函式
e    0.872609

f 0.808678

g 0.146722

dtype: float64

a    0.774375

b 0.272000

c 0.896503

dtype: float64

format = lambda x:'%.2f'%x # 格式化函式
e     f     g

a 0.15 0.13 0.90

b 0.91 0.70 0.97

c 0.04 0.94 0.82

f1 = lambda x:x.max()-x.min()

f2 = lambda x:x.mean()

deff

(x):

return series([f1(x),f2(x)],index=['range','mean']) # series中的值是實際的函式,索引是該函式返回值的標籤

e         f         g

range 0.872609 0.808678 0.146722

mean 0.367709 0.588730 0.899239

Pandas 統計函式

統計方法有助於理解和分析資料的行為。現在我們將學習一些統計函式,可以將這些函式應用到pandas的物件上。系列,datframes和panel都有pct change 函式。此函式將每個元素與其前乙個元素進行比較,並計算變化百分比。import pandas as pd import numpy a...

Pandas統計特徵函式

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

pandas排序與統計

python for data analysis sort index 對行或列索引進行排序 in 1 import pandas as pd in 2 from pandas import dataframe,series in 3 obj series range 4 index d a b c...