需求:
表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,导入,实习,数据 From: https://www.cnblogs.com/djbwxh/p/16574844.html