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 Web服务器Tornado使用小结
May 06 Python
Python实现Linux命令xxd -i功能
Mar 06 Python
python实现超市扫码仪计费
May 30 Python
python列表使用实现名字管理系统
Jan 30 Python
Python3.5内置模块之random模块用法实例分析
Apr 26 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
python深copy和浅copy区别对比解析
Dec 26 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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
php获取网页内容方法总结
2008/12/04 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
JavaScript学习笔记之定时器
2015/01/22 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python实现批量修改文件名实例
2015/07/08 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
基于Python fminunc 的替代方法
2020/02/29 Python
python字符串的index和find的区别详解
2020/06/20 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
企事业单位求职者的自我评价
2013/12/28 职场文书
上班玩手机检讨书
2014/02/17 职场文书
教育英语专业毕业生的求职信
2014/03/13 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
优秀教研组申报材料
2014/12/26 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
js前端图片加载异常兜底方案
2022/06/21 Javascript