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 Mysql自动备份脚本
Jul 14 Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
Python随机生成一个6位的验证码代码分享
Mar 24 Python
python 使用get_argument获取url query参数
Apr 28 Python
python安装Scrapy图文教程
Aug 14 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
python tkinter界面居中显示的方法
Oct 11 Python
python实现简单五子棋游戏
Jun 18 Python
python ctypes库2_指定参数类型和返回类型详解
Nov 19 Python
python实现指定ip端口扫描方式
Dec 17 Python
基于python代码批量处理图片resize
Jun 04 Python
python中使用np.delete()的实例方法
Feb 01 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中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python迭代和迭代器详解
2016/11/10 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python八皇后问题的解决方法
2018/09/27 Python
关于python中密码加盐的学习体会小结
2019/07/15 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
计算机专业学生的自我评价
2013/12/15 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android