分组数据并比较来自 excel 和 python 的数据
Grouping data and comparing it from excel in python
我正在开发一个项目,使用 python 到 select 来自 excel 文件的某些值。我正在使用 xlrd 库和 openpyxl 库来执行此操作。
python 程序的工作方式应该是:
- 对某个卡片中的所有数据点条目进行分组。这些标记在 E 列中。例如,第 26 行和第 28 行之间的所有条目都在卡片任务 A 中,因此它们应该组合在一起。 E 列中没有“卡片任务”值的所有条目不应被视为任何内容。
下一个…
查看一行中 N 列 (lastExecTime) 的值,并将该时间与 M 列中的以下值进行比较
如果发现时间重叠(M 列小于之前的 N 值),它将递增一个名为“count”的变量。计数存储过程重叠的次数。
终于……
- 至于输出,目标是创建一个单独的文本文件,显示哪些任务重叠,以及在某个卡片任务中有多少任务重叠。
我 运行 遇到的问题是我无法配对卡片任务中的数据
这是 excel 数据的示例:
The data (a picture of it)
这是更多数据的图片(这可能会更有帮助)
Click here for it
这是我编写的代码,它告诉我是否有多个过程在进行:
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))
基本上我的问题是我无法将一项卡片任务的所有值相互比较。
Blockquote
我会像您一样通读一次数据,但将所有带有 'Card Task' 的行存储在单独的列表中。一旦你有了一个只有卡片任务项目的列表,你就可以比较了。
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
我正在开发一个项目,使用 python 到 select 来自 excel 文件的某些值。我正在使用 xlrd 库和 openpyxl 库来执行此操作。
python 程序的工作方式应该是:
- 对某个卡片中的所有数据点条目进行分组。这些标记在 E 列中。例如,第 26 行和第 28 行之间的所有条目都在卡片任务 A 中,因此它们应该组合在一起。 E 列中没有“卡片任务”值的所有条目不应被视为任何内容。
下一个…
查看一行中 N 列 (lastExecTime) 的值,并将该时间与 M 列中的以下值进行比较
如果发现时间重叠(M 列小于之前的 N 值),它将递增一个名为“count”的变量。计数存储过程重叠的次数。
终于……
- 至于输出,目标是创建一个单独的文本文件,显示哪些任务重叠,以及在某个卡片任务中有多少任务重叠。
我 运行 遇到的问题是我无法配对卡片任务中的数据
这是 excel 数据的示例:
The data (a picture of it)
这是更多数据的图片(这可能会更有帮助) Click here for it
这是我编写的代码,它告诉我是否有多个过程在进行:
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))
基本上我的问题是我无法将一项卡片任务的所有值相互比较。
Blockquote
我会像您一样通读一次数据,但将所有带有 'Card Task' 的行存储在单独的列表中。一旦你有了一个只有卡片任务项目的列表,你就可以比较了。
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