Python Pandas统计函数
百分比变化(pct_change)
Series 和 DatFrames 都可以使用 pct_change() 函数。该函数将每个元素与其前一个元素进行比较,并计算前后数值的百分比变化。示例如下:import pandas as pd
import numpy as np
#Series结构
s = pd.Series([1,2,3,4,5,4])
print (s.pct_change())
#DataFrame
df = pd.DataFrame(np.random.randn(5, 2))
print(df.pct_change())
输出结果:
默认情况下,pct_change() 对列进行操作,如果想要操作行,则需要传递参数 axis=1 参数。示例如下: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 74.779242 0.624260
2 -0.353652 -1.104352
3 -2.422813 -13.994103
4 -3.828316 -1.853092
import pandas as pd
import numpy as np
#DataFrame
df = pd.DataFrame(np.random.randn(3, 2))
print(df.pct_change(axis=1))
输出结果:
0 1
0 NaN 3.035670
1 NaN -0.318259
2 NaN 0.227580
协方差(cov)
Series 对象提供了一个cov方法用来计算 Series 对象之间的协方差。同时,该方法也会将缺失值(NAN )自动排除。示例如下:
输出结果: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.20789380904226645
当应用于 DataFrame 时,协方差(cov)将计算所有列之间的协方差。import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
#计算a与b之间的协方差值
print (frame['a'].cov(frame['b']))
#计算所有数列的协方差值
print (frame.cov())
输出结果:
-0.37822395480394827
a b c d e
a 1.643529 -0.378224 0.181642 0.049969 -0.113700
b -0.378224 1.561760 -0.054868 0.144664 -0.231134
c 0.181642 -0.054868 0.628367 -0.125703 0.324442
d 0.049969 0.144664 -0.125703 0.480301 -0.388879
e -0.113700 -0.231134 0.324442 -0.388879 0.848377
相关系数(corr)
相关系数显示任意两个 Series 之间的线性关系。Pandas 提供了计算相关性的三种方法,分别是 pearson(default)、spearman() 和 kendall()。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print (df['b'].corr(frame['c']))
print (df.corr())
输出结果:
0.5540831507407936
a b c d e
a 1.000000 -0.500903 -0.058497 -0.767226 0.218416
b -0.500903 1.000000 -0.091239 0.805388 -0.020172
c -0.058497 -0.091239 1.000000 0.115905 0.083969
d -0.767226 0.805388 0.115905 1.000000 0.015028
e 0.218416 -0.020172 0.083969 0.015028 1.000000
注意:如果 DataFrame 存在非数值(NAN),该方自动将其删除。
排名(rank)
rank() 按照某种规则(升序或者降序)对序列中的元素值排名,该函数的返回值的也是一个序列,包含了原序列中每个元素值的名次。如果序列中包含两个相同的的元素值,那么会为其分配两者的平均排名。示例如下:
import pandas as pd
import numpy as np
#返回5个随机值,然后使用rank对其排名
s = pd.Series(np.random.randn(5), index=list('abcde'))
s['d'] = s['b']
print(s)
#a/b排名分别为2和3,其平均排名为2.5
print(s.rank())
输出结果:
a -0.689585
b -0.545871
c 0.148264
d -0.545871
e -0.205043
dtype: float64
排名后输出:
a 1.0
b 2.5
c 5.0
d 2.5
e 4.0
dtype: float64
1) method参数
rank() 提供了 method 参数,可以针对相同数据,进行不同方式的排名。如下所示:average:默认值,如果数据相同则分配平均排名;
min:给相同数据分配排名;
max:给相同数据分配排名;
first:对于相同数据,根据出现在数组中的顺序进行排名。
2) aisx&ascening
rank() 有一个ascening参数, 默认为 True 代表升序;如果为 False,则表示降序排名(将较大的数值分配给较小的排名)。rank() 默认按行方向排名(axis=0),也可以更改为 axis =1,按列排名。示例如下:
import pandas as pd
import numpy as np
a = pd.DataFrame(np.arange(12).reshape(3,4),columns = list("abdc"))
a =a.sort_index(axis=1,ascending=False)
a.iloc[[1,1],[1,2]] = 6
#按行排名,将相同数值设置为所在行数值的排名
print(a.rank(axis=1,method="max"))
输出结果:
与 method="min"进行对比,如下所示:d c b a
0 3.0 4.0 2.0 1.0
1 4.0 4.0 4.0 1.0
2 3.0 4.0 2.0 1.0
输出结果:import pandas as pd
import numpy as np
a = pd.DataFrame(np.arange(12).reshape(3,4),columns = list("abdc"))
a =a.sort_index(axis=1,ascending=False)
a.iloc[[1,1],[1,2]] = 6
#按行排名,将相同数值设置为所在行数值的最小排名
print(a.rank(axis=1,method="min"))
d c b a
0 3.0 4.0 2.0 1.0
1 2.0 2.0 2.0 1.0
2 3.0 4.0 2.0 1.0
- 随机文章
- 有几个马尔代夫(马尔代夫数量惊人,你办理签证了吗?48字)
- 中东马尔代夫事件(中东国家针对马尔代夫的事件引发关注)
- 国足 马尔代夫 盘口(国足VS马尔代夫,赛前盘口分析)
- 中国马尔代夫潜水(探秘中国海底世界:马尔代夫潜水之旅)
- 西安马尔代夫视频(【西安夫妻模仿马尔代夫拍摄情侣视频 走红网络】)
- 农门长子马尔代夫(农村长子成为马尔代夫生态保护志愿者)
- 孟津马尔代夫失火(孟津一酒店在马尔代夫大火,多人受伤)
- 国内马尔代夫酒店(国内能感受马尔代夫风情的酒店推荐!)
- 中国 马尔代夫 预测(2021年中国游客马尔代夫游人数预测达新高)
- 大连马尔代夫美女(大连女子披马尔代夫风,网友赞美如仙)
- 国旅 马尔代夫(国旅推出马尔代夫旅游计划)
- 描写马尔代夫美景(「重温马尔代夫:探索绝美海底世界」)
- 东莞 马尔代夫(东莞打造航拍仿马尔代夫度假村)
- 时间过客马尔代夫(时间荏苒,再次相逢——马尔代夫之旅)
- 妲己 马尔代夫(探索马尔代夫:追寻妲己的踪迹)
- 吉隆坡到马尔代夫(从吉隆坡到美丽的马尔代夫:旅行指南)
- 印度马尔代夫春节(印度封锁对马尔代夫春节旅游造成困境)
- 清晨马尔代夫的画(清晨的马尔代夫:一个美不胜收的画。)
- 淮北马尔代夫攻略(淮北游客必看!马尔代夫旅游攻略分享)
- 福建泉州马尔代夫(福建泉州首家马尔代夫主题水乐园开业)
- 南京马尔代夫地址(南京的马尔代夫在哪?详细地址公布!)
- 吴京马尔代夫度假(吴京度假马尔代夫,轻松享受海岛风光)
- 转瞬即逝马尔代夫(马尔代夫——飞跃印度洋的美丽天堂!)
- 漳州马尔代夫海景(漳州湾畔享受马尔代夫海景奢华度假村)
- 类似 马尔代夫(重温最美马尔代夫,度过难忘假期!)
- 直飞马尔代夫旅游(直达马尔代夫的旅游方案,快来了解!)
- 你好 马尔代夫(去马尔代夫旅游前必看,详细介绍马尔代夫!)
- 芜湖马尔代夫图片(赏心悦目!芜湖模拟马尔代夫照片展示)
- 马尔代夫人洗澡吗(马尔代夫女性的个人卫生习惯是什么?)
- 北方 马尔代夫(马尔代夫珍贵海洋自然资源亟待保护)
