Pandas-14.統(tǒng)計(jì)函數(shù)
pct_change()
- Series,DataFrame和Panel都有pct_change()函數(shù)
- 將每個(gè)元素和前一個(gè)元素進(jìn)行比較,計(jì)算變化百分比
- 默認(rèn)列操作,通過(guò)axis = 1參數(shù)換成行
s = pd.Series([1,2,3,4,5,6,7])
print(s.pct_change())
'''
0 NaN
1 1.000000
2 0.500000
3 0.333333
4 0.250000
5 0.200000
6 0.166667
dtype: float64
'''
df = pd.DataFrame(np.random.randn(5,2))
print(df.pct_change())
'''
0 1
0 NaN NaN
1 -0.079922 -0.967315
2 5.439245 -16.543627
3 -0.982768 1.365857
4 -16.309964 -0.422582
協(xié)方差
- 適用于Series數(shù)據(jù)
- cov()方法來(lái)計(jì)算Series之間的協(xié)方差
- NAN自動(dòng)被排除
- 用于DataFrame時(shí)滑潘,計(jì)算所有列之間的協(xié)方差(cov)值
s1 = pd.Series(np.random.randn(10))
s2 = pd.Series(np.random.randn(10))
s1.cov(s2)
'''
-0.2903289442568039
'''
df = pd.DataFrame(np.random.randn(10,5), columns=["a","b","c","d","e"])
df.cov()
'''
a b c d e
a 0.490571 -0.226859 0.195764 0.105226 -0.054498
b -0.226859 1.675397 -0.720394 -0.437154 0.035249
c 0.195764 -0.720394 1.277242 0.422822 -0.073178
d 0.105226 -0.437154 0.422822 0.316138 0.021553
e -0.054498 0.035249 -0.073178 0.021553 0.957176
'''
相關(guān)性
- 相關(guān)性顯示了任何兩個(gè)Series之間的線性關(guān)系
- 有多種方法計(jì)算:pearson(默認(rèn))胰挑、spearman,和Kendall
- 自動(dòng)排除DataFrame中的非數(shù)字列
df.a.corr(df.b)
# -0.25023454111623283
df.corr()
'''
a b c d e
a 1.000000 -0.250235 0.247312 0.267199 -0.079530
b -0.250235 1.000000 -0.492464 -0.600671 0.027835
c 0.247312 -0.492464 1.000000 0.665399 -0.066183
d 0.267199 -0.600671 0.665399 1.000000 0.039181
e -0.079530 0.027835 -0.066183 0.039181 1.000000
'''
數(shù)據(jù)排名
- 數(shù)據(jù)排名為元素?cái)?shù)組中的每個(gè)元素生成排名
- 在相同的情況下竿奏,分配平均等級(jí)。
- 可選的使用一個(gè)默認(rèn)為true的升序參數(shù)腥放,設(shè)定為false則逆序
- 有不同的tie-breaking方法泛啸,用方法指定:
- average - 并列組平均排序等級(jí)(默認(rèn))
- min - 組中最低的排序等級(jí)
- max - 組中最高的排序等級(jí)
- first - 按照在數(shù)組中出現(xiàn)的順序分配等級(jí)
s = pd.Series(np.random.np.random.randn(5), index=list('abcde'))
s.d=s.b
s.rank()
'''
a 4.0
b 2.5
c 1.0
d 2.5
e 5.0
dtype: float64
'''