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和MD5实现网站挂马检测程序
Mar 13 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
python爬取m3u8连接的视频
Feb 28 Python
python实现键盘控制鼠标移动
Nov 27 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
Python如何安装第三方模块
May 28 Python
python爬虫使用requests发送post请求示例详解
Aug 05 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
虫族 ZERG 概述
2020/03/14 星际争霸
thinkphp模板继承实例简述
2014/11/26 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
php单例模式的简单实现方法
2016/06/10 PHP
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
JQuery替换DOM节点的方法
2015/06/11 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Python原始字符串(raw strings)用法实例
2014/10/13 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
Python生成词云的实现代码
2020/01/14 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
Oracle快照(snapshot)
2015/03/13 面试题
化工机械应届生求职信
2013/11/04 职场文书
技术学校毕业生求职信分享
2013/12/02 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
三年级科学教学反思
2014/01/29 职场文书
捐款倡议书范文
2014/02/02 职场文书
领导干部考察材料
2014/02/08 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
给老婆道歉的话
2015/01/20 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
老公出轨后的保证书
2015/05/08 职场文书
党员转正意见怎么写
2015/06/03 职场文书