其他分享
首页 > 其他分享> > 实习1

实习1

作者:互联网

需求:

表A:含有字段:,数据28152条

 表B含有字段:问题账号,数据124条

目的是筛选出问题账号所包含的系统名称,地市,账号,姓名,身份证,是否实名。

 

方法一:excel vlookup函数解决

(1)找到关联信息

将账号信息A放在sheet1表A,B,C,D,E,F列,问题账号放置sheet2 A列

 #N/A表示结果为空,即账号lujd15不在问题账号里面

 将错误值设置为0,方便后续删除。

(2)筛选出问题账号(备份原数据)

选中G列,ctrl+F查找,查找值为0,选项里面单元格匹配,查找全部,然后点击下面的任意一行值,ctrl+A选中所有值为0的。右键-->删除整行

(3)去除重复值

选择数据-->重复项-->删除重复项-->按照账号,姓名,身份证作为重复值标准进行删除。

参考:https://jingyan.baidu.com/article/363872ec00d6156e4ba16fb4.html

 

方法二:mysql解决

工作环境是workbench,难点在于excel含中文字段和中文数据的情况下,如何进行处理:

(1)出现的问题

网上各种解决办法,尝试了几个,都出现了问题,就是在导入表格数据中如果选择创建新表,

可能出现gbk不能解码utf-8格式的数据,使用txt和Notepad++解决了编码问题,但是只能导入表头,没有数据,类似这种情况

 

再一次尝试,再导入时修改字段类型:

 身份证因为有输错成类似H57435,以及最后一位含有X的,使用text类型,结果如下:

 我滴孩,导了10分钟,导出0条数据,后续有解决办法在总结

下面的含有中文表头和数据的可以导入,上面的不可以,我丢?

 这个同样可以:

 

(2)退而求其次的方法

导入表格数据时不选择创建新表,而是使用已有的表,所以首先要根据要导入的字段类型,设置一模一样的表格表头类型,然后在创建时匹配对应的字段(字段名称可以不一样,中文一般没问题,中文出错了,可以把中文表头改成英文尝试),导入即可

注意:导入前需要将excel数据变为csv格式,编码使用excel默认的gbk就导入成功了

 SELECT count(*) FROM test1; 结果为24160 可能自动去除重复值了

SELECT count(*) FROM test2;结果为138

然后

SELECT * FROM test1
where 账号 in
(select 问题账号 from test2)

共122条结果

 

方法三:python解决

import pandas as pd

test1 = pd.read_excel('源数据.xlsx')
data1 = test1['账号']

test2 = pd.read_excel('gonghao.xlsx')
data2 = test2['工号']

test1即A表,test2即B表,data1为A表下的账号列,data2为B表下的工号列

 

 一共在test1中检索到144条问题账号:

 因为账号,一般是唯一属性,按照账号和地市进行去重,共筛选132条数据:

 同一账号,可能在不同地区工作过,所以只按照账号去重如下,共筛选122条数据:

 或者只按照身份证号进行去重:

 

最终结果为122条,over

 不使用函数,使用循环编写,但是问题在哪里,艹

 

 不搞了,over!

 

参考:

https://blog.csdn.net/weixin_45914452/article/details/120585861

https://blog.csdn.net/choumin/article/details/89518400

 

标签:test1,test2,账号,excel,导入,实习,数据
来源: https://www.cnblogs.com/djbwxh/p/16574844.html