当前位置: 首页 > 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在对大规模图像进行分类方面取得了巨大…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...