Python的excel数据匹配(以国泰安数据为例)

实现过程

  1. 引入必要的库:使用了tkinter创建GUI窗口,以及pandas进行数据处理。
  2. 文件选择和数据读取:弹出文件对话框,让用户选择要导入的两个Excel文件,并读取这两个文件的数据,分别存储在名为"表1"和"表2"的变量中。
  3. 数据清洗和处理:
  • 删除了"表2"中公司名称中包含"ST"或"st"的行。
  • 删除了"表2"中重复的前三列数据。这个操作是基于假设,如果123列(股票代码、公司名称、年份)有重复项出现,可能是因为下载了多个报表类型的数据。代码删除了这些重复项,只保留每组重复值的第一个。
  • 注意:代码只会保留第一个出现的数据。且以第123列为判断标准,这意味着只要第123列的行重复,它保留的行可能是报表类型a,也可能是报表类型b。如果追求严谨,请点击取消,用excel手动筛选
  • 将日期格式改为年份,并将年份放到第二列。
  • 合并了第一列和第二列,并根据情况判断是否存在重复值。如果存在重复值,说明数据可能是季度数据,代码将按年份对数据进行求和,转换为年度数据。
  • 数据合并:将处理后的"表2"与"表1"按照指定的合并键进行合并,合并结果存储在新的数据框中。
  • 数据保存和输出:删除合并结果中的不必要列,并将最终结果保存为新的Excel文件。最后输出结果,整个匹配过程完成。

思路

需求分析

1,国泰安的数据有的只有季度数据,而我们需要的是年度数据,在excel中需要用到数据透视去筛选,分组求和。且数据时间尺度为10年-23年,重复性工作多。

2,将分表数据匹配到总表中需要耗费时间,4w行的数据多要1分钟运行时间,且每次输入lookup函数都要更换变量值,浪费时间,容易视觉疲劳导致出错。

怎么做

在代码里主要分为表1和表2,表1是总表,而表2是分表,第一阶段,该代码的目标就是先整理好表2的数据,然后第二阶段就是将表2的数据匹配到表1里,而后导出匹配好的合并表,在用这张合并表去充当表1,周而复始,从而达到多表匹配到一张表的效果。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值