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每天必学之bytes字节
Jan 28 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
python笔记:mysql、redis操作方法
Jun 28 Python
Python3中详解fabfile的编写
Jun 24 Python
解决Python下imread,imwrite不支持中文的问题
Dec 05 Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
Python下划线5种含义代码实例解析
Jul 10 Python
python Paramiko使用示例
Sep 21 Python
python3中编码获取网页的实例方法
Nov 16 Python
Python语言中的数据类型-序列
Feb 24 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 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中模糊查询并关联三个select框
2017/06/19 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
js中cookie的使用详细分析
2008/05/28 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
整理Python 常用string函数(收藏)
2016/05/30 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
python绘制简单彩虹图
2018/11/19 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
.net工程师笔试题
2012/06/09 面试题
DataList 能否分页,请问如何实现?
2015/05/03 面试题
中学生操行评语
2014/04/24 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python