python:删除离群值操作(每一行为一类数据)


Posted in Python onJune 08, 2020

删除有多行字符串的json文件中的离群值

def processHold(eachsubject,directory,newfile):
	filename = 'CMUDataCol/Hold/subject{0}.json'.format(eachsubject) # 原文件
	
	with open(filename, 'r') as f: 
		for jsonstr in f.readlines(): # 按行读取原文件
		# 这里的情况是每一行为一类数值,该行内的数据相互比较找出是否有离群值
		# 若存在离群值,则删除该行数据
			data = json.loads(jsonstr)
			
			#计算四分位点
			a = numpy.array(data) 
			q1 = numpy.percentile(a, 25)  
			q3 = numpy.percentile(a, 75)  
			iqr = q3 - q1
			
			# 找出异常值
			i = 0 
			for item in zip(data): 
				# 在正常值范围内时 i+1
				if item <= q3 + (1.5*iqr) and item >= q1 - (1.5*iqr):   
					i = i + 1  
					
			if i == 10: 
			# 这里是因为我的json文件中每行data有10个元素(如果有更好的方法,请教我一下,谢谢您!)  
				HoldTime = data
				with open(newfile, 'a') as f: # 将非离群数据存入新文件
					json.dump(HoldTime, f) 
					f.write('\n')

补充知识:dataframe 离群值处理

离群值:远离数据主要部分的样本(极大值或极小值)

处理方式:

删除:直接删除离群样本

填充样本:使用box-plot定义变量的数值上下界,以上界填充极大值,以下界填充最小值

# 查看房价的离群情况
df['average_price'].hist()
plt.show()
df[['average_price']].boxplot()
plt.show()

python:删除离群值操作(每一行为一类数据)

# 根据箱线图的上下限进行异常值的填充
def boxplot_fill(col):
 # 计算iqr:数据四分之三分位值与四分之一分位值的差
 iqr = col.quantile(0.75)-col.quantile(0.25)
 # 根据iqr计算异常值判断阈值
 u_th = col.quantile(0.75) + 1.5*iqr # 上界
 l_th = col.quantile(0.25) - 1.5*iqr # 下界
 # 定义转换函数:如果数字大于上界则用上界值填充,小于下界则用下界值填充。
 def box_trans(x):
  if x > u_th:
   return u_th
  elif x < l_th:
   return l_th
  else:
   return x
 return col.map(box_trans)
# 填充效果查看
boxplot_fill(df['average_price']).hist()
# 进行赋值
df['average_price'] = boxplot_fill(df['average_price'])
plt.show()

以上这篇python:删除离群值操作(每一行为一类数据)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现配置文件备份的方法
Jul 30 Python
CentOS中升级Python版本的方法详解
Jul 10 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
对python3 一组数值的归一化处理方法详解
Jul 11 Python
面向对象学习之pygame坦克大战
Sep 11 Python
python编写猜数字小游戏
Oct 06 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
Python yield的用法实例分析
Mar 06 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
Python基于locals返回作用域字典
Oct 17 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
Dec 07 Python
pyecharts在数据可视化中的应用详解
Jun 08 #Python
python numpy实现rolling滚动案例
Jun 08 #Python
Python如何向SQLServer存储二进制图片
Jun 08 #Python
python求numpy中array按列非零元素的平均值案例
Jun 08 #Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 #Python
使用Python FastAPI构建Web服务的实现
Jun 08 #Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 #Python
You might like
在数据量大(超过10万)的情况下
2007/01/15 PHP
PHP 定界符 使用技巧
2009/06/14 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
windows下python连接oracle数据库
2017/06/07 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
运动会通讯稿150字
2014/02/15 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
电视节目策划方案
2014/05/16 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript