资讯专栏INFORMATION COLUMN

Python中运用Winsorize缩尾解决操作工作经验

89542767 / 781人阅读

  缩尾解决等同于对信息进行掐头(尾)去尾,之后再依照相应的方式弥补被剪掉相关数据,接下来本文主要是给为大家介绍了有关Python中运用Winsorize缩尾解决的资料,必须的小伙伴可以参考一下


  近期搞数据信息的时候发现,缩尾时原来是空字符或是失效系数的地区被弥补了数据信息。传统促进会将空字符去除之后再进行缩尾,但是一些不用去除空字符的数据必须去除极端值,因此不可以忽略缩尾。结合自身的操作工作经验做一些记录:


  以储存在Excel中相关数据举例:


  from scipy.stats.mstats import winsorize
  import pandas as pd
  df=pd.read_excel('Excel.xlsx',engine='openpyxl',header=0)
  df_list=["a","b","c"]#需要进行缩尾的列名


  1:直接应用Winsorize,不考虑空值和无效值,缩尾结果可能导致部分空值被填充数据


  for i in df_list():
  df<i>=winsorize(df<i>,limits=[0.01,0.01])#对指定列中的连续数据进行1%和99%的缩尾(Winsorize)处理


  2.1:屏蔽空值和无效值,仅对其他值进行Winsorize处理,缩尾结果不改变原来的空值和无效值


  for i in df_list():
  df<i>=np.where(df<i>.isnull(),np.nan,winsorize(np.ma.masked_invalid(df<i>),limits=(0.01,0.01)))
  #np.where(condition,x,y),满足condition是x,否则y
  #此处判断是否空值,是的话为空,否的话进行屏蔽空值和无效值的1%和99%缩尾处理


  2.2:winsorize提供的参数,但这个方法我没有成功…仅供参考


  for i in df_list():
  df<i>=winsorize(df<i>,limits=[0.01,0.01],nan_policy='omit')

  

01.png

      3:屏蔽空值和无效值,对所有值进行Winsorize处理,缩尾结果不改变原来的空值和无效值,与方法2的区别在于方法3没有改变需要缩尾的数据长度


  for i in df_list():
  mask=df<i>.notna()
  df.loc[mask,i]=winsorize(df<i>.loc[mask],limits=[0.01,0.01])
  #这个mask就是一个bool index,指示哪些位置上是nan
  #比如一列数据是[1,NaN,2],如果用df['A'].isnan()得到的就是一个[False,True,False]的数组
  #这个数组就是所谓的mask,它可以把dataframe中的特定数据挑出来


  我碰到后续描述性统计有负无穷值的问题,因而将其替换为空值


  #如果需要将无穷值换为空值
  df=df.replace(-np.Inf,np.NaN)


  总结


  到此这篇关于Python中应用Winsorize缩尾处理的文章就介绍到这了,希望可以给大家带来一定的帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128688.html

相关文章

  • “乐高式松耦合”架构实战

    摘要:二乐高式松耦合架构落地快速实现需求与需求实现越来越慢的矛盾如何解决最终白山的产品架构聚焦在解耦上,方便平台快速迭代,减少系统间依赖程度,打通无关联项目,为运营互动提供高效支持,确保服务质量。 作者:王康 白山联合创始人兼产品副总裁。 王康先生主要负责产品的完善与升级、产品开发流程把控及进度协调、产品设计改进及定期优化、产品全生命周期管理等工作。他带领团队实现白山首款产品CDN-X的多项...

    xiaochao 评论0 收藏0
  • “乐高式松耦合”架构实战

    摘要:二乐高式松耦合架构落地快速实现需求与需求实现越来越慢的矛盾如何解决最终白山的产品架构聚焦在解耦上,方便平台快速迭代,减少系统间依赖程度,打通无关联项目,为运营互动提供高效支持,确保服务质量。 作者:王康 白山联合创始人兼产品副总裁。 王康先生主要负责产品的完善与升级、产品开发流程把控及进度协调、产品设计改进及定期优化、产品全生命周期管理等工作。他带领团队实现白山首款产品CDN-X的多项...

    Pikachu 评论0 收藏0
  • 入行数据科学一定要有研究生学历吗?

    摘要:如果你的目标是成为数据科学家或机器学习工程师研究员,那么有博士学位会给你加分不少。当然,有些人更喜欢学术研究,而不是在行业中运用数据科学或机器学习。二硕士学位入行数据科学需要硕士学位吗视情况而定。 showImg(https://segmentfault.com/img/bVbm5Mw?w=850&h=566);作者 | Jeremie Harris翻译 | MikaCDA 数据分析师...

    DrizzleX 评论0 收藏0
  • 蠎周刊 2015 年度最赞

    摘要:蠎周刊年度最赞亲俺们又来回顾又一个伟大的年份儿包去年最受欢迎的文章和项目如果你错过了几期就这一期不会丢失最好的嗯哼还为你和你的准备了一批纪念裇从这儿获取任何时候如果想分享好物给大家在这儿提交喜欢我们收集的任何意见建议通过来吧原文 Title: 蠎周刊 2015 年度最赞Date: 2016-01-09 Tags: Weekly,Pycoder,Zh Slug: issue-198-to...

    young.li 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<