python 实现数据化大屏_【论文数据处理】Python实现Vlookup任意多列匹配

c9c511ce03d9dc0a3ede892567a979c8.png

4040d32ad532e973445cd1cf7869502d.png

    c8b2ebe5ed504bf328177e548c0808a3.png如果有用,底部打赏下d1c4c7b4a38ba644e5afdfca89f39caf.png  

     小样本数据查找匹配Excel的Vlookup轻松搞定,但对于动不动数万行数十万行的数据可能vlookup处理效率就相对低下了,所以思考了下Python的Vlookup实现及功能的增强以备不时之需。下面编了个例子简单验证。

     在论文写作过程中,我们经常需要从实验或临床数据中筛选出我们研究需要的数据,如下图所示,我们需要以表2的姓名为关键词快速把表1中相同患者的血糖、血脂填充到表2,当样本数据量少,需要填充的列相对少时,在Excel中使用vlookup可以快速搞定,具体如下,因操作简单故不详细说明,google教程也很多,简单总结了下载数据量少的情况下实现简单,但缺点明显处理大数据效率低下,换一个数据又需要再次写Fx表达式比较繁琐,重复劳动,而且在表格存在数据格式不一致的情况下常常出错。

ff28885f5664f737ee02bd046f9f63ac.png

    下面说说python实现,通过简单的修改代码就可以实现不同表格不同数据的快速查找匹配,而且重点是高效,数万行数据,任意多列匹配可一键完成,操作虽然貌似复杂一点点,但是可以减少很多重复劳动,匹配就可以快速分析,SPSS的钱还有数据操作、绘图都给你省了,话不多述直接看代码和最后运行的结果,运行完后会生成新的Excel表格:

#Author ZeroEgg #date 2020-04-21import pandas as pddata1=pd.read_excel(r'C:\Users\Administrator\Desktop\vlookup1.xlsx')data2=pd.read_excel(r'C:\Users\Administrator\Desktop\vlookup2.xlsx')name1=data1['姓名']name2=data2['姓名']glucose=data1['血糖'] tg=data1['血脂'] lb=[]for i in range(len(glucose)):    zz=[glucose[i],tg[i]]    lb.append(zz)cx=dict(zip(name1,lb))     vlookup=[]for k in name2:if cx.get(k) is not None:         zd={'名字':k,'血糖':cx.get(k)[0],'血脂':cx.get(k)[1]}        vlookup.append(zd)df=pd.DataFrame(vlookup)print(df)df.to_excel(r'C:\Users\Administrator\Desktop\111.xlsx', encoding='utf-8', index=False)

b7e5e282e287f8c7e43377a38c1572d4.png

p.s上图与代码有少量区别,其中差异自行体会。

c0ab3a296a77caac21ed6d5be800e258.png

    最后还要说的是例子只是匹配了两列,但是随意修改一下逆向实现一键匹配多少列都行,这个例子也仅仅只是为了验证一下实现的可行性。同时也可以在这个基础上加上更多的数据处理功能,看自己需求修改。

44fe75b4d858eadf7237d2804f223bf5.gif

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值