专栏首页悠扬前奏的博客Pandas-14.统计函数

Pandas-14.统计函数

Pandas-14.统计函数

pct_change()

  • Series,DataFrame和Panel都有pct_change()函数
  • 将每个元素和前一个元素进行比较,计算变化百分比
  • 默认列操作,通过axis = 1参数换成行
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

协方差

  • 适用于Series数据
  • cov()方法来计算Series之间的协方差
  • NAN自动被排除
  • 用于DataFrame时,计算所有列之间的协方差(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
'''

相关性

  • 相关性显示了任何两个Series之间的线性关系
  • 有多种方法计算:pearson(默认)、spearman,和Kendall
  • 自动排除DataFrame中的非数字列
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
'''

数据排名

  • 数据排名为元素数组中的每个元素生成排名
  • 在相同的情况下,分配平均等级。
  • 可选的使用一个默认为true的升序参数,设定为false则逆序
  • 有不同的tie-breaking方法,用方法指定:
    • average - 并列组平均排序等级(默认)
    • min - 组中最低的排序等级
    • max - 组中最高的排序等级
    • first - 按照在数组中出现的顺序分配等级
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
'''

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MyBatis-4.Java API

    MyBatis 的主要 Java 接口就是 SqlSession。可以通过这个接口来执行命令,获取映射器和管理事务。 SqlSessions 是由 SqlSe...

    悠扬前奏
  • Groovy-18.模板引擎

    使用SimpleTemplateEngine类可以再模板中使用类似JSP的scriptlet和EL表达式,用来生成参数化文本。 模板引擎允许绑定参数列表以及值...

    悠扬前奏
  • Groovy-12.XML

    悠扬前奏
  • python中重要的模块--asyncio

    一直对asyncio这个库比较感兴趣,毕竟这是官网也非常推荐的一个实现高并发的一个模块,python也是在python 3.4中引入了协程的概念。也通过这次整理...

    coders
  • HydroCMS和Merit用nat123实现系统发布

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

    hotqin888
  • nodejs源码解析之事件循环

    nodejs的的事件循环由libuv的uv_run函数实现。在该函数中执行while循环,然后处理各种阶段(phase)的事件回调。事件循环的处理相当于一个消费...

    theanarkh
  • maven-scala-plugin pom file error unknown

    sparkle123
  • Maven系列第5篇:私服详解

    整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接。

    路人甲Java
  • 报告 | 2018区块链商业落地情况分析报告

    前言 随着区块链泡沫的逐渐消退,行业从业者纷纷寻求区块链应用落地的方向,在公链目前落地困难的情况下,以联盟链形式与垂直行业的结合的落地应用逐渐开始兴起。 尽管区...

    灯塔大数据
  • 那些年我们一起追过的缓存写法(三)

    蘑菇先生

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动