热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用MySQL对比Excel数据分析

之前的一篇文章讲述了用Excel进行数据分析的过程,如今我们对比一下在Excel和MySQL中相同过程有着什么样的变化。原始数据就是猴子老师第三关的数据根据猴子老师第三关的步骤制作

之前的一篇文章讲述了用Excel进行数据分析的过程,如今我们对比一下在Excel和MySQL中相同过程有着什么样的变化。

原始数据就是猴子老师第三关的数据 根据猴子老师第三关的步骤制作 初次尝试有很多不足 欢迎讨论指正。

1.首先将招聘网站的原始数据导入MySQL。因为中文的列名可能会对后面的数据有影响,所以我们将列名改为英文。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

因为表格当中没有唯一识别的主键,所以我们单独加上了一列做主键。

《用MySQL对比Excel数据分析》

也可以在MySQL中新建表格将相应的列名对应。

导入表格。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

Excel选择csv格式。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

导入数据,选择编码,这样表格中中文不会出现乱码。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

此时一定要将原来的Excel表格关闭。然后不用改其他的东西,一直选择下一步。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

确认主键

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

点击下一步,然后点击开始。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

成功之后关闭,即可看见表格已经生成。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

双击表格可以看见数据都传进MySQL中

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

在查询中编辑sql语句即可。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

按照Excel的步骤进行

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

1.提出问题:

1)在哪些城市找到数据分师工作的机会比较大?

2)数据分师的薪水如何?

3)根据工作经验的不同,薪酬是怎样变化的?

2.清洗数据

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

第一步选择子集

使用ALTER TABLE <表名> DROP COLUMN <列名>将不用的子集删除。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

选中红框圈住的语句,点击运行下的运行已选择

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

注意,并列情况下逗号,不可少。

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

再次运行上面的语句,可以发现下面的列已经删除了其他的部分。

第二步重新命名列名已经不用了,直接进行第三步删除重复值。

我们看一下我们导入的数据的数量

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

使用count函数,计算主键的个数,为6874个

而真正去掉重复项之后,应该是5031个

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

但是DISTINCT只能在SELECT中将重复值去掉,不能彻底去掉重复值,所以要使用

DELETE FROM <表名>

WHERE<条件>;

来删除行。或者以后在用到计算数据时在列名的前面加DISTINCT 用到就加

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

DELETE FROM `招聘网站数据-原始数据 1`

WHERE

job_ID in

(SELECT job_ID FROM (SELECT job_ID

FROM `招聘网站数据-原始数据 1`

GROUP BY job_ID

HAVING COUNT(job_ID)>1)a)

AND zhujian NOT in

(SELECT zhujian FROM(SELECT MIN(zhujian) AS zhujian

FROM `招聘网站数据-原始数据 1`

GROUP BY job_ID

HAVING COUNT(job_ID)>1)b);

删除重复值保留一个值的方法是删除job_ID为重复ID,但是主键不是最小值的行。

注意:DELETE FROM `招聘网站数据-原始数据 1`

WHERE

job_ID in

(SELECT job_ID

FROM `招聘网站数据-原始数据 1`

GROUP BY job_ID

HAVING COUNT(job_ID)>1)

AND zhujian NOT in

(SELECT MIN(zhujian) AS zhujian

FROM `招聘网站数据-原始数据 1`

GROUP BY job_ID

HAVING COUNT(job_ID)>1);

会报错 [Err] 1093 &#8211; You can&#8217;t specify target table 表格名称 for update in FROM clause

原因是:更新数据时使用了查询,而查询的数据又做了更新的条件,mysql不支持这种方式。oracel和msserver都支持这种方式。 怎么规避这个问题? 再加一层封装。

且注意注意select min(zhujian) 后面要有as zhujian

第四步,缺失值处理

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

可知city列有缺失值

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

可知3,5行有缺失值

使用update<表名>

set<列名>=<表达式>

where<条件>;

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

第五步,一致化处理

将薪水变成最高工资,最低工资和平均工资

利用locate函数:

LOCATE(substr,str)

返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0:

此函数相当于Excel中的find函数

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

substring函数

字符串截取:substring(str from 起始位置 for 终止位置 )

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

LENGTH函数 是计算字符串的长度,等同于Excel中的LEN函数

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

但是 得到的是select的值 无法长久的保存 想要长久的保存要更新列,然后update数据

更新列采用 alter table<表名> add column<列的定义>

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

update 来更新数据

update<表名>

set<列名>=<表达式>;

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

平均薪水

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

已上这个的平均薪水还是15 可能是将后面的当成字符串了

但是在update时会报错

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

再次更新列 然后update数据

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

数据透视表:根据自己的问题绘制相应的要展示的结果

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

但是不知道为什么不限 和应届毕业生不正确 等以后明白了再来更新

发现之前新建的值都是字符型 这里改成integer型

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

使用 use information_schema;

select * from columns where column_name=&#8217;字段名&#8217; ;

来查看列的定义(注意是两个;)

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

vlookup

《用MySQL对比Excel数据分析》
《用MySQL对比Excel数据分析》

至此 基本的Excel功能在MySQL中体现了


推荐阅读
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • 本文介绍了Hive常用命令及其用途,包括列出数据表、显示表字段信息、进入数据库、执行select操作、导出数据到csv文件等。同时还涉及了在AndroidManifest.xml中获取meta-data的value值的方法。 ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
author-avatar
-彼岸花开-hui
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有