Python每次修改格式时都读取excel数据

2024-10-04 11:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

我从某人那里得到一份excel,我每个月都需要阅读数据。格式每次都不稳定,说“不稳定”是指:

  1. 数据开始的位置发生变化:例如,A节这次可能从第4行D列开始,但下次可能从第2行e列开始
  2. 每个部分下面都有标签。标签的数量也可能改变。但每次我只需要标记2和标记3中的数据(这两个总是会出现)

我需要的唯一数据是每个月(month1-month8)的tag_2和tag_3。我想找到一种使用Python的方法,首先定位节名,然后在该节下找到标记2和标记3,然后获取month1到month8的数据(月份数也可能会改变)。你知道吗

请注意,我不想通过在excel中指定位置来定位所需的数据,因为位置每次都会更改。我该怎么做?你知道吗

最终产品应该是一个pandas数据框,其中包含tag_2和tag_3的每月数据,并带有一个列,说明数据来自哪个部分。你知道吗

谢谢。你知道吗


Tags: 数据方法标记定位pandas数量产品tag
2条回答

假设(可能是手动粘贴的)信息块不太可能出现在excel工作表的右下角,您可以简单地对行和列进行迭代(为每个行和列设置最大值以防止长时间的搜索),直到找到熟悉的值(如“a节”)并从那里开始。你知道吗

除非我误解了您的意思,否则格式的其余部分应该在月份之间保持一致,这样您就可以简单地假设“month_1”总是向上一个单元格,在初始位置的右边两个单元格。你知道吗

我个人没有在python中使用excel工作表,因此我无法说明在python中是否可以执行以下操作,但在ExcelVBA中肯定可以:

你也可以用范围.查找()方法找到值“Section A”并继续执行与上面相同的过程,可能会将任何结果写入txt文件并在必要时从那里调用python脚本。你知道吗

我希望这有点帮助。你知道吗

我想你可以直接把它读成逗号分隔的文本文件。根据您的需要,您可以查看每行的tag2和tag3。你知道吗

with open(filename, "r") as fs:
    for line in fs:
        cell_list = line.split(",")
        # This point you will have all elements on the line as a list
        # you can check for the size and implement your logic

相关问题 更多 >