首页 > 解决方案 > 在python中对数据进行分组并从excel中进行比较

问题描述

我正在使用python从excel文件中选择某些值的项目。我正在使用 xlrd 库和 openpyxl 库来执行此操作。

我们应该使用的python程序的工作方式是:

接下来……</p>

终于……</p>

我遇到的问题是我无法配对卡片任务中的数据

这是excel数据的示例:

数据(图片)

这是更多数据的图片(这可能会更有帮助) 单击此处查看

这是我编写的代码,它告诉我是否有多个程序正在进行:

from openpyxl import load_workbook
book = load_workbook('LearnerSummaryNoFormat.xlsx')
sheet = book['Sheet1']


for row in sheet.rows:
     if ((row[4].value[:9]) != 'Card Task'):
         print ("Is not a card task: " + str(row[1].value))

本质上,我的问题是我无法将一张卡片任务中的所有值相互比较。

块引用

标签: pythonexcelxlrd

解决方案


我会像你已经阅读过的数据一样,但将所有带有“卡片任务”的行存储在一个单独的列表中。一旦你有了一个只有卡片任务项目的列表,你就可以进行比较。

card_task_row_object_list = []
count = 0

for row in sheet.rows:
     if 'Card Task' in row[4]:
          card_task_row_object_list.append(row)

从这里你会想要比较时间值。如果两个不同的卡片任务时间重叠,您需要检查什么?

(第 12 行:开始,第 13 行:结束)

def compare_times(card_task_row_object_list):
     for row in card_task_row_object_list:
          for comparison_row in card_task_row_object_list:
               if (comparison_row[12] <= row[13] && comparison_row[13] >= row[12])
                     # No overlap
               else
                     count+=1

推荐阅读