十六行python代码搞定两表业务数据更新(附详细讲解)
2021/4/14 14:55:26
本文主要是介绍十六行python代码搞定两表业务数据更新(附详细讲解),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最近接到一个需求,因为门诊数据表里的患者信息有大量的空值,会导致在后续数据处理及分析的过程中产生大的偏差,让我想办法把患者信息补全,借助深度的业务理解,很快就找到解决方案。针对该医院的实际运营状况,住院患者多是根据门诊患者产生的,根据患者的姓名、社保卡号可以锁定同一个人,那么开始上代码:
第一步数据读取准备工作:
import pandas as pd #分别读取住院字典表和门诊数据表 data1 = pd.read_csv('C:\\Users\\glf\\Desktop\\测试医院\\住院字典表.txt',encoding='gbk') data2 = pd.read_csv('C:\\Users\\glf\\Desktop\\测试医院\\门诊数据表.txt',names=['c0','c1','c2','c3','c4','c5','c6','c7','c8','c9','c10','c11','c12','c44']) #把读取到的数据框转换为list data1 = data1.values.tolist() data2 = data2.values.tolist() #定义一个空列表 res = []
住院字典表如图:
门诊数据表如图:
第二步业务逻辑实现:
#第一层循环遍历门诊数据表list for i in data2: #第二层循环遍历住院字典表list for j in data1: #拿到每次循环遍历的下标值进行判断是否成立 if i[12] == j[1] and i[44] == j[2]: #条件成立,则把住院字典表里的值赋给门诊数据表 i[7] = j[0] #解决在excel表科学计数法的问题 i[7] = str(i[7]) +'\t' #把成立的list追加在我们定义的res中 res.append(i) break else: #条件不成立,直接运行到这里然后进行追加 i[7] = str(i[7]) + '\t' res.append(i) #最后调用pandas的DataFrame方法,把list重新转换为数据框并导出结果 df = pd.DataFrame(res) df.to_csv('C:\\Users\\glf\\Desktop\\99.csv',index=False,header=False)
关联结果输出如图:
回顾一下,会发现在这一个需求里考到了三个知识点:
1、list和DataFrame的相互转换,在这里呢我们可以直接调用python或者pandas的一些方法进行转换,这一点是不是要比java爽的多呢,哈哈哈哈。
2、嵌套循环,我们以门诊数据表为业务主表,在每次循环遍历门诊数据时,我们都会循环遍历住院字典表,判断住院字典表中是否满足和门诊数据表信息重叠的情况,成立的话,我们就进行赋值追加到res列表中,不成立的话,我们就直接进行追加。
3、科学计数法问题,在出现过长的纯数字时,在Excel数据表里会发生科学计数法的问题,我们可以把该字段给转换为字符串,在加上\t(或者别的特殊字符),就ok了。
这篇关于十六行python代码搞定两表业务数据更新(附详细讲解)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程