当前位置: 首页 > news >正文

数据分析--观察数据处理异常值

引包:

import pandas as pd
import  numpy as np

读取文件:

df=pd.read_csv('./HR.csv')

文件见绑定资源(来自kaggle的HR.csv)

处理过程:

一、从df中拿出处理对象

二、找出缺失值的位置并删除

s1_s=df['satisfaction_level']
# s1_s.isnull()
#查找空值
print(s1_s[s1_s.isnull()])
# 查看空值的具体情况
print(df[df['satisfaction_level'].isnull()])
# 删除空值
s1_s=s1_s.dropna()
# print(s1_s)

三、观察数据组成情况

(均值。中位数、最大值最小值、标准差、偏度和峰度.......)

print(s1_s.mean())#均值
print(s1_s.median())#中位数
print(s1_s.std())#标准差
print(s1_s.max())#最大值
print(s1_s.min())#最小值
print(s1_s.quantile(q=0.25))#下四分位数
print(s1_s.quantile(q=0.75))#上四分位数
print(s1_s.skew())#偏度=-0.4763...为负偏--均值偏小,大部分数大于均值
print(s1_s.kurt())#峰度=-0.67...-->相对于正态分布来说属于比较平缓的状态

(获取离散化的分布用numpy.histogram)

 获取离散化的分布用numpy.histogram
s=np.histogram(s1_s.values,bins=np.arange(0.0,1.1,0.1))# series的值  bins:切分的临界
print(s)
# 输出:              (array([ 195, 1214,  532,  974, 1668, 2146, 1972, 2074, 2220, 2004],# dtype=int64), array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ]))

其他列的数据也是同上三部的操作代码如下:

(多了一个删除异常值)

le_s=df['last_evaluation']
print(le_s[le_s.isnull()])print(le_s.mean())#均值
print(le_s.std())#标准差
print(le_s.max())#最大值
print(le_s.min())#最小值
print(le_s.median())#中位数
print(le_s.skew())#偏度
print(le_s.kurt())#峰度
print(df['last_evaluation'].describe())
print(df.describe())q_low=le_s.quantile(q=0.25)
q_high=le_s.quantile(q=0.75)
q_interval=q_high-q_low
k=1.5
le_s=le_s[le_s<q_high+k*q_interval][le_s>q_low-k*q_interval]
print(le_s)
print(np.histogram(le_s.values,bins=np.arange(0.0,1.1,0.1)))#处理number_project
np_s=df['number_project']
print(np_s[np_s.isnull()])np_s=np_s.dropna()
print('====')
print(np_s)
# print(np_s.skew())k=1.5
np_s1=np_s.quantile(0.25)
np_s2=np_s.quantile(0.75)
np_ss=np_s2-np_s1
np_s=np_s[np_s<np_s2+k*np_ss][np_s>np_s1-k*np_ss]
print(np_s)
print(np_s.describe())
# 查看数据的个数
print(np_s.value_counts())
# 查看各个数据所占的比例
print(np_s.value_counts(normalize=True))
#                        normalize:输出占比比例
# 按照index排序和values排序
print(np_s.value_counts(normalize=True).sort_index())
print(np_s.value_counts(normalize=True).sort_values())# 处理average_montly_hours
amh_s=df['average_montly_hours']
# print(amh_s)
print(amh_s[amh_s.isnull()])
amh_s=amh_s.dropna()
# print('===\n',amh_s[amh_s.isnull()])
# print(amh_s)
# print(amh_s.describe())
Upper_q=amh_s.quantile(q=0.75)
Lower_q=amh_s.quantile(q=0.25)
q=Upper_q-Lower_q
amh_s=amh_s[amh_s<=Upper_q+q*1.5][amh_s>=Lower_q-q*1.5]
print(amh_s)
# 输出偏度和峰度
print(amh_s.skew(),amh_s.kurt())

观察数值的分布情况

使用了histogram和可视化两个方法


# 方法一
print(np.histogram(amh_s.values,bins=10))
# print(np.histogram(amh_s.values,bins=np.arange(amh_s.min(),amh_s.max()+10,10)))
# # 方法二:画图--利用直方图来观察数据的分布情况
# import matplotlib.pyplot as plt
# plt.hist(amh_s.values,np.arange(amh_s.min(),amh_s.max()+10,10))
# plt.show()

其他列的简单操作大部分都是删除空值

tsc_s=df['time_spend_company']
# print(tsc_s)
x=tsc_s[tsc_s.isnull()]
# print(x)
tsc_s=tsc_s.dropna()
# print(tsc_s)
print(tsc_s.min(),tsc_s.max(),tsc_s.kurt(),tsc_s.skew(),tsc_s.std())
uper_q=tsc_s.quantile(q=0.75)
lower_q=tsc_s.quantile(q=0.25)
q=uper_q-lower_q
tsc_s=tsc_s[tsc_s<uper_q+q*1.5][tsc_s>lower_q-q*1.5]
print(tsc_s)
print(tsc_s.min(),tsc_s.max(),tsc_s.kurt(),tsc_s.skew(),tsc_s.std())
print(tsc_s.value_counts().sort_index())
print(np.histogram(tsc_s.values,bins=np.arange(tsc_s.min(),tsc_s.max()+1,1)))wa_s=df['Work_accident']
print(wa_s)
wa_s.value_counts()
wa_s=wa_s[wa_s==0.0]
print(wa_s)lf_s=df['left']
print(lf_s)
lf_s=lf_s[lf_s==1.0]
print(lf_s)
print(lf_s.value_counts())pro_s=df['promotion_last_5years']
print(pro_s)
pro_s=pro_s[pro_s==0.0]
print(pro_s)
print(pro_s.value_counts())s_s=df['salary']
print(s_s)
s_s=s_s.dropna()
print(s_s)
print(s_s.value_counts())dpt_s=df['sales']
print(dpt_s)
dpt_s=dpt_s.dropna()
print(dpt_s)
dpt_s.where()
print(dpt_s.value_counts())say_s=df['salary']

其实删除空值只需一行代码上面是为了一列一列的观察数据查看还有没有其他的异常值: 

df=df.dropna(axis=0,how='any')

 意思是删除只要有空值的行。

对比分析:

(将不同列放在一起观察并分析数据)

这里的代码类似与sql的DQL代码


df=df.dropna(axis=0,how='any')
# print(df)df1=df.groupby('sales').min()
print(df1)
df2=df.loc[:,['satisfaction_level','sales']].groupby('sales').mean()
print(df2)
print('=====')
# 输出极差
df3=df.loc[:,['average_montly_hours','sales']].groupby('sales')['average_montly_hours'].apply(lambda x:x.max()-x.min())
print(df3)
print(df['salary'].value_counts())
print(len(df['salary'].value_counts()))

简单的可视化操作:

这里用到的是matplotlib

import matplotlib.pyplot as plt
plt.title('salary')
plt.xlabel('salary_zhonglei')
plt.ylabel('shuliang')
plt.xticks(np.arange(len(df['salary'].value_counts())),df['salary'].value_counts().index)
# bottom=['low','medium','high']
plt.axis([-1,3,0,10000])
plt.bar(np.arange(len(df['salary'].value_counts())),df['salary'].value_counts(),width=0.4)
for x,y in zip(np.arange(len(df['salary'].value_counts())),df['salary'].value_counts()):plt.text(x,y,y,ha='center',va='bottom')# ha = 'center', va = 'bottom'
plt.show()

相关文章:

数据分析--观察数据处理异常值

引包&#xff1a; import pandas as pd import numpy as np 读取文件&#xff1a; dfpd.read_csv(./HR.csv) 文件见绑定资源&#xff08;来自kaggle的HR.csv&#xff09; 处理过程&#xff1a; 一、从df中拿出处理对象 二、找出缺失值的位置并删除 s1_sdf[satisfactio…...

vue3+elementPlus el-input的type=“number“时去除右边的上下箭头

改成 代码如下 <script lang"ts" setup> import {ref} from vue const inputBtn ref() </script> <template><el-input type"number" v-model"inputBtn" style"width: 80px;" class"no_number">…...

华为云云耀云服务器L实例评测|Elasticsearch的可视化Kibana工具安装 IK分词器的安装和使用

前言 最近华为云云耀云服务器L实例上新&#xff0c;也搞了一台来玩&#xff0c;期间遇到各种问题&#xff0c;在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍Elasticsearch的可视化Kibana工具安装&#xff0c;以及IK分词器的安装和使用。 其他相关的Elasticsea…...

加密货币交易技巧——人和(一)

交易原则 ​ 本篇主要讲述加密货币交易人需要注意的几个原则。 1.不能贪心&#xff0c;具体表现在做好仓位管理。第一&#xff0c;不要重仓进去&#xff0c;一定要轻仓。第二&#xff0c;开仓就想好本次要赚多少钱&#xff0c;不要太贪&#xff0c;到了预期点就止盈。第三&am…...

数学建模:最优化问题及其求解概述

数学建模&#xff1a;最优化问题及其求解概述 最优化问题定义分类离散优化问题连续优化问题 求解 此博客围绕运筹学以及最优化理论的相关知识&#xff0c;通俗易懂地介绍了最优化问题的定义、分类以及求解算法。 最优化问题 定义 数学优化&#xff08;Mathematical Optimiza…...

企业办理CS资质,怎么选择办理等级?

信息系统建设和服务能力等级证书&#xff08;Information system construction and service—Capability assessment system&#xff0c;简称&#xff1a;CS&#xff09;&#xff0c;由中国电子信息行业联合会组织开展的第三方评估活动&#xff0c;是根据《信息系统建设和服务能…...

华为云云耀云服务器L实例评测|Huawei Cloud EulerOS 自动化环境部署

[toc] Huawei Cloud EulerOS 自动化环境部署 云耀云服务器L实例【Huawei Cloud EulerOS 2.0 64bit】 Python Git Google Chrome Chromedriver Selenium More… 1. Python 镜像创建后自带。 2.Git 拉取项目。 sudo yum install git3. Google Chrome 使用root权限或sudo权…...

从一张表格开始做挖机报价系统

一、前言 历时4个月的挖机销售报价系统进入收尾阶段&#xff0c;由我直接负责与业务方对接&#xff0c;这中间各种折腾真是一言难尽&#xff0c;项目开发过程中还要维护POS系统以及牛奶配送系统&#xff0c;本项目我们采用的是迭代开发&#xff0c;今天讲一下具体的开发过程以…...

Qt扫盲-QTreeView 理论总结

QTreeView 理论使用总结 一、概述二、快捷键绑定三、提高性能四、简单实例1. 设计与概念2. TreeItem类定义3. TreeItem类的实现4. TreeModel类定义5. TreeModel类实现6. 在模型中设置数据 一、概述 QTreeView实现了 model 中item的树形表示。这个类用于提供标准的层次列表&…...

BF算法详解(JAVA语言实现)

目录 BF算法的介绍 图解 JAVA语言实现 BF算法的时间复杂度 BF算法的介绍 BF算法&#xff0c;即暴力(Brute Force)算法&#xff0c;是普通的模式匹配算法&#xff0c;BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配&#xff0c;若相等&#xff0c;则继…...

零基础转行网络工程师,过来人给的一些建议

最近收到好多同学的一些提问&#xff0c;零基础没经验&#xff0c;能不能转行到网络工程师&#xff1f;薪资能有多少&#xff1f;发展前景怎么样&#xff1f; 应该有不少朋友都有这个疑问&#xff0c;那么&#xff0c;今天我尽量给大家做出一个详细的解答&#xff0c;希望能有…...

Vue中如何进行分布式搜索与全文搜索(如Elasticsearch)

在Vue中实现分布式搜索与全文搜索&#xff08;使用Elasticsearch&#xff09; 分布式搜索和全文搜索在现代应用程序中变得越来越重要&#xff0c;因为它们可以帮助用户快速查找和检索大量数据。Elasticsearch是一种强大的分布式搜索引擎&#xff0c;它可以用于实现高性能的全文…...

数据结构-图-最小生成树问题

最小生成树 并查集定义举例说明查找某个元素属于哪个集合代码实现路径压缩 Kruskal算法原理代码实现 Prim算法原理代码实现 并查集 定义 &#x1f680;在一些应用问题中&#xff0c;需要将n个不同的元素分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&…...

使用vite+npm封装组件库并发布到npm仓库

组件库背景&#xff1a;使用elementplusvue封装了一个通过表单组件。通过JSX对el-form下的el-input和el-button等表单进行统一封装&#xff0c;最后达到&#xff0c;通过数据即可一键生成页面表单的功能。 1.使用vite创建vue项目 npm create vitelatest elementplus-auto-form…...

85.最大矩形

单调栈&#xff0c;时间复杂度o(mn)&#xff0c;空间复杂度o(mn) class Solution { public:int maximalRectangle(vector<vector<char>>& matrix) {int mmatrix.size();if(m0){return 0;}int nmatrix[0].size();//记录矩阵中每个元素左边连续1的数量vector<…...

Windows服务器 开机自启动服务

1、新建txt&#xff0c;并粘贴下面脚本 start cmd /k "cd /d D:\ahjd&&java -jar clips-admin.jar" start cmd /k "cd /d D:\ahjd\dist&&simple-http-server.exe -i -p 8000"说明&#xff0c;脚本格式为&#xff1a;start cmd /k “cd /d…...

《算法通关之路》chapter17一些通用解题模板

《算法通关之路》学习笔记&#xff0c;记录一下自己的刷题过程&#xff0c;详细的内容请大家购买作者的书籍查阅。 1 二分法 1.1 普通二分法 # 查找nums数组中元素值为target的下标。如果不存在&#xff0c;则返回-1def bs(nums: list[int], target: int) -> int :l, h …...

常用求解器安装

1 建模语言pyomo Pyomo是一个Python建模语言&#xff0c;用于数学优化建模。它可以与不同的求解器&#xff08;如Gurobi&#xff0c;CPLEX&#xff0c;GLPK&#xff0c;SCIP等&#xff09;集成使用&#xff0c;以求解各种数学优化问题。可以使用Pyomo建立数学优化模型&#xf…...

第三章:最新版零基础学习 PYTHON 教程(第一节 - Python 运算符)

在Python编程中,运算符一般用于对值和变量进行操作。这些是用于逻辑和算术运算的标准符号。在本文中,我们将研究不同类型的Python 运算符。 运算符:这些是特殊符号。例如- + 、 * 、 / 等。操作数:它是应用运算符的值。目录 Python 中的运算符类型 Python 中的算术运算符…...

细粒度特征提取和定位用于目标检测:PPCNN

1、简介 近年来&#xff0c;深度卷积神经网络在计算机视觉上取得了优异的性能。深度卷积神经网络以精确地分类目标信息而闻名&#xff0c;并采用了简单的卷积体系结构来降低图层的复杂性。基于深度卷积神经网络概念设计的VGG网络。VGGNet在对大规模图像进行分类方面取得了巨大…...

【STM32单片机】数学自动出题器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器&#xff0c;使用按键、IIC OLED模块等。 主要功能&#xff1a; 系统运行后&#xff0c;OLED液晶显示出题器开机界面&#xff0c;默认结果范围为100&#xff0c;可按…...

C语言之动态内存管理篇(1)

目录 为什么存在动态内存分配 动态内存函数的介绍 malloc free calloc realloc 常见的动态内存错误 今天收假了&#xff0c;抓紧时间写几篇博客。我又来赶进度了。今天我们来讲解动态内存管理。&#x1f197;&#x1f197; 为什么存在动态内存分配 假设我们去实现一个…...

React18入门(第二篇)——React18+Ts项目配置husky、eslint、pretttier、commitLint

前言 我的项目版本如下&#xff1a; React&#xff1a; V18.2.0Node.js: V16.14.0TypeScript&#xff1a;最新版工具&#xff1a; VsCode 本文将采用图文详解的方式&#xff0c;手把手带你快速完成在React项目中配置husky、prettier、commitLint&#xff0c;实现编码规范的统…...

【VINS】苹果手机采集单目相机+IMU数据离线运行VINS-Mono

0.准备工作 开个新坑&#xff0c;之前用Android手机做过离线采集数据的实验&#xff0c;这次用IPhone来测试&#xff01; 1.虚拟机配置Mac OS 下载一个Mac OS 的ios镜像&#xff0c;打开虚拟机按照跟Ubuntu差不多的方式安装&#xff0c;但是发现没有Mac OS的入口。 因为VMwa…...

数据结构 2.1 单链表

1.单链表 线性表&#xff1a;1.有限的序列 2.序列中的每一个元素都有唯一的前驱和后继&#xff0c;除了开头和结尾的两个节点。 顺序表&#xff1a;分配一块连续的内存去存放这些元素&#xff0c;eg、数组 链表&#xff1a;内存是不连续的&#xff0c;元素会各自被分配一块内…...

[Machine Learning]pytorch手搓一个神经网络模型

因为之前虽然写过一点点关于pytorch的东西&#xff0c;但是用的还是他太少了。 这次从头开始&#xff0c;尝试着搓出一个神经网络模型 &#xff08;因为没有什么训练数据&#xff0c;所以最后的训练部分使用可能不太好跑起来的代码作为演示&#xff0c;如果有需要自己连上数据…...

KdMapper扩展实现之Dell(pcdsrvc_x64.pkms)

1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动&#xff0c;本文是利用其它漏洞&#xff08;参考《【转载】利用签名驱动漏洞加载未签名驱动》&#xff09;做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称pcds…...

python和go相互调用的两种方法

前言 Python 和 Go 语言是两种不同的编程语言&#xff0c;它们分别有自己的优势和适用场景。在一些项目中&#xff0c;由于团队内已有的技术栈或者某一部分业务的需求&#xff0c;可能需要 Python 和 Go 相互调用,以此来提升效率和性能。 性能优势 Go 通常比 Python 更高效&…...

c# 分部视图笔记

Html.Partial("**", 1) public ActionResult **(int page) { ViewBag.page page; return PartialView("**"); }...

Vue3最佳实践 第七章 TypeScript 中

Vue组件中TypeScript 在Vue组件中&#xff0c;我们可以使用TypeScript进行各种类型的设置&#xff0c;包括props、Reactive和ref等。下面&#xff0c;让我们详细地探讨一下这些设置。 设置描述设置props在Vue中&#xff0c;props本身就具有类型设定的功能。但如果你希望使用Ty…...

如何做淘宝cms导购网站/百度网址链接是多少

前些天在学习linux下的驱动编写&#xff0c;找到了一块之前淘到的液晶屏&#xff0c;主控芯片是ili9341&#xff0c;分辨率为240*320的屏幕&#xff0c;接口方式是SPI的&#xff0c;心血来潮想搞一下。不过奈何驱动水平不到家&#xff0c;只是开发出了一种杂交方法&#xff0c;…...

外贸网站推广怎样做/seo优化的优点

kafka学习笔记 kafka系列四、kafka架构原理、高可靠性存储分析及配置优化 kafka系列八、kafka消息重复和丢失的场景及解决方案分析 kafka消息的分发与消费与高级应用 springboot下 kafka 手动创建topic并指定分区(partition)数及分区副本(replica)数 Topic&Partition 的…...

大连网龙建站优化推广/网店如何营销推广

更多代码请见&#xff1a;https://github.com/xubo245 基因数据处理系列 1.解释 重新运行&#xff0c;跟换了文件地址 后来终端&#xff0c;需要运行其他的2.代码&#xff1a; hadoopMaster:~/disk2/xubo/project/alignment/sparkBWA$ vi sparkBWA.sh for j in 10000 10000…...

网站开发种类/搜索引擎营销是什么意思

os这个模块提供了一种方便的使用操作系统函数的方法。__file__&#xff1a;这个脚本的相对路径。比如说脚本叫做test.py&#xff0c;那print(__file__)输出的结果就是test.py。os.path.realpath(__file__)&#xff1a;这个脚本的绝对路径。os.getcwd()&#xff1a;当前工作区的…...

二季域名做网站/佛山seo按效果付费

对于从事前端工作的小伙伴&#xff0c;掌握Vue&#xff0c;React这样的框架可以说是前端基本功了。人人都会用&#xff0c;那我们怎样才能写得比别人优雅&#xff1f;比别人漂亮&#xff1f;鉴于一线互联网大厂在前沿技术领域的持续研究和大规模投入&#xff0c;直接向他们取经…...

潍坊市建设局门户网站/广告精准推广平台

kafka安装及配置 大家好&#xff0c;今天我要给大家介绍一下kafka的安装及配置的方式。 首先介绍一下什么叫kafka。Kafka是一个发布订阅消息系统&#xff0c;它的用途小木我理解的是&#xff0c;我们有一个温度传感器&#xff0c;然后kafka监控着这个传感器&#xff0c;它一有数…...