实现过程
- 引入必要的库:使用了tkinter创建GUI窗口,以及pandas进行数据处理。
- 文件选择和数据读取:弹出文件对话框,让用户选择要导入的两个Excel文件,并读取这两个文件的数据,分别存储在名为"表1"和"表2"的变量中。
- 数据清洗和处理:
- 删除了"表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,周而复始,从而达到多表匹配到一张表的效果。

&spm=1001.2101.3001.5002&articleId=137757112&d=1&t=3&u=96051a6f995743a29046885cea3eb941)
3518

被折叠的 条评论
为什么被折叠?



