删除有多行字符串的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()

# 根据箱线图的上下限进行异常值的填充

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:删除离群值操作(每一行为一类数据)相关推荐

  1. python+办公自动化_Python办公自动化之操作excel

    最近家属的工作有个频繁操作excel的事情,我想到可以利用python的办公自动化来解决这重复性的工作.py5分钟,节约两小时. 整理了思路,理清了操作步骤如下: 安装openpyxl库: 学习pyt ...

  2. python删除行_python 删除文件中指定行

    原博文 2017-03-20 19:18 − 代码适用情况:xml文件,循环出现某几行,根据这几行中的某个字段删掉这几行这段代码的作用删除jenkins中config.xml中在自动生成pipline ...

  3. python滚动条_python中selenium操作下拉滚动条的几种方法汇总

    UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等:但有一种是在当前显示的页面元素不可见,拖动下拉条后元素就出来了. 比如下面这样一个网页 ...

  4. python 计时_Python计时相关操作详解【time,datetime】

    本文实例讲述了Python计时相关操作.分享给大家供大家参考,具体如下: 内容目录: 1. 时间戳 2. 当前时间 3. 时间差 4. python中时间日期格式化符号 5. 例子 一.时间戳 时间戳 ...

  5. python关闭浏览器删除session_Django操作session 的方法

    session是存放在服务端的,在django中使用session必须要先在数据库中创建django_session表,session相关信息都要依赖此表 获取session request.sess ...

  6. python怎样显示表格数据匹配_Python根据表中每一行中的数据匹配txt文章中出现的次数,表格,每行,在,统计...

    用途: 根据表格每行数据,匹配在txt文章中出现的次数统计 示例: 注意事项: 1. 环境:pip install re & pandas & xlrd; python 3; 2. 表 ...

  7. python绘画_python绘图骚操作之plotly(一)——plotly的基本绘图方式

    python进阶教程 机器学习 深度学习 长按二维码关注 进入正文 Plotly基础内容介绍 目录 一 plotly简介 二 plotly安装 2.1 安装方式 三 plotly的绘图方式 四 plo ...

  8. python原子_Python的原子性操作是如何实现的

    GIL保证字节码级别的原子性和线程安全性,因此当个字节码执行一定是安全的,执行结果一定是一致的. 而有些操作,底层需要通过多个字节码来完成,这样的操作就不是原子的,因此不是线程安全的.举个例子,a+= ...

  9. python 月报_python实践--月报分析之获取jira缺陷数据

    首先安装jira,同其他第三方库,直接可以 easy_install jira. 判断jira是否按转成功输入:from jira import JIRA,如果没有报错则说明安装成功: #连接jira ...

最新文章

  1. Scikit-Learn大变化:合并Pandas
  2. oracle回收ddl权限,oracle禁止指定用户DDL操作触发器
  3. 下一代 Web 应用模型 —— Progressive Web App (PWA)
  4. JavaScript实现使用 BITWISE 方法查找集合的幂集算法(附完整源码)
  5. 远程mysql定时删除数据_mysql定时备份数据库 删除历史文件 将备份数据库传送到另外服务器...
  6. win10安装misql8_Windows10安装MySQL 8.0.11
  7. C++:听说C++很难学?该怎么学习C++?
  8. iOS 音乐播放器之锁屏效果+歌词解析
  9. java中excelAPI的简介
  10. Shadow DOM系列1-简介
  11. sql server2008数据库迁移的两种方案
  12. MSP---企业上云需要考虑的问题
  13. cmake install_CMAKE入门实战
  14. 用oracle 11g bbed copy替换同一个表数据块block为另一个数据块之系列八
  15. 使用别名(就像我们自己的小名)
  16. 故障恢复控制台的启动方法
  17. ios在判断设备是ipad_识别您的 iPad 机型
  18. 2019年,线下营销有哪些重要趋势?
  19. linux打包文件恢复,修复损坏的gz或tar.gz压缩文件之原理篇
  20. 中软国际万人基地项目落户高新区软件新城(组图)

热门文章

  1. 高清视频体验大幅提升,来数数我们应用了哪些新算法
  2. Applilet2 for V850ES/Fx3生成代码
  3. C语言 【程序30】 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
  4. 洗地机那个牌子好?洗地机品牌排行榜
  5. 微信备份到云服务器失败是怎么回事,电脑微信备份连接失败的原因(解决利用电脑版微信备份的方法)...
  6. ASP页面模板对象[彭国辉]
  7. 2017年的第一场顶会,AI 产业巨头都带来了哪些技术干货
  8. 免云挂机聚合易支付码支付V6.5修正版系统源码
  9. 马云关于计算机名言,49句关于马云的名言
  10. 苹果电脑可以装windows系统吗_Linux系统安装Windows软件? 通过这个工具可以做到...