扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在文献中能经常看到一个时间序列图(横坐标为时间,纵坐标为变量)会有阴影覆盖(一般表现为淡一些的颜色),这样的图上下为25%-75%的范围。可以让人一眼看出数据随时间变化以及数据的波动性,近几年用的越来越多,所以也做了一些努力来还原这种图。
成都创新互联于2013年创立,是专业互联网技术服务公司,拥有项目成都网站建设、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元陆丰做网站,已为上家服务,为陆丰各地企业和个人服务,联系电话:028-86922220
看图中historical为历史1900-2015年的CMIP6数据的平均值,上下为四分位。这种图需要historical的数据为(x,y)这里的x为时间,y为时间对应气象要素值。中间的一般为平均值或者中间值,上下表现为四分位范围(但这张图表现为17%-83%),由于最近经常使用这种图,所以结合网上的资料自己修改写了一个子函数可以在python中直接使用
函数很好理解,ax为figure添加的图,x和y为上面提到的数据,n为分层的层数(这个可以大家自行体会,我一般不分),percentile_min和max为对应的值(如果使用四分位设置为25和75即可),后面一目了然不再赘述。
这是使用该函数绘制的图
Enjoy
在日常的数据分析中,分位数 是非常重要的一环,在探查数据分布,定义指标中都必不可缺。但 python 里的分位数计算却潜藏了一些坑点,特分享。
我们先看看百度百科的 分位数 定义:
正如上文所言,四分位数 就是将数据从小到大排成4等分,然后取出3个分割点的数值。百分位数则以此类推,通过分位数 我们可以对数据的分布有更深的了解:
分位数 的定义是很容易理解的,但大部分人不知道的是,分位数的计算方法有两种:
我们依旧以 四分位数 为例
三种方法各有利弊,但结果都可能存在差距,需要与需求方仔细确认到底是哪个计算方法。
能满足4分位计算的函数主要有2个:numpy 的 percentile 方法 和 pandas 的 quantile 方法 。但他们的计算方法都是 1+(n-1)方法,我们看个例子:
既然没有现成的方法,我们就手写一个 n 的方法。
百分位的计算是非常常见的数据分析需求,但在实际使用时并没有那么的简单,专业的统计逻辑和""我们以为""的逻辑并不尽然相同。需时时谨慎,校验数据。
1、在pandas中,我们采用了R语言中的惯用法,即将缺失值表示为NA,它表示不可用not available。
2、pandas项目中还在不断优化内部细节以更好处理缺失数据。
3、过滤掉缺失数据的办法有很多种。可以通过pandas.isnull或布尔索引的手工方法,但dropna可能会更实用一些。对于一个Series,dropna返回一个仅含非空数据和索引值的Series。
4、而对于DataFrame对象,可能希望丢弃全NA或含有NA的行或列。dropna默认丢弃任何含有缺失值的行。
5、最后通过一个常数调用fillna就会将缺失值替换为那个常数值,若是通过一个字典调用fillna,就可以实现对不同的列填充不同的值。这样就完成了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Copyright © 2002-2023 www.csdahua.cn 快上网建站品牌 QQ:244261566 版权所有 备案号:蜀ICP备19037934号
微信二维码
移动版官网