背景
当我在工作中运行报告时,我在.xlsx文件中有以下内容。
A1 - 名字 B1 - 姓氏 C1 - 出席日期
每一行都包含参加我们某个活动的每个人的数据。我正在python中构建一个程序,它将获取一个master.xlsx文件并将其与另一个.xlsx进行比较,并给我以下输出。
第二个.xlsx报告每周运行一次,但实际上有一个月的出勤数据。这意味着如果Joe Blow在一个月内出席6次,Joe Blow将在.xlsx文件中返回6行,每行都有一个唯一的日期。所以我将迭代数据,比较日期,只保留最新的数据。
问题
我实际上已经完成了上述工作,我的第一个倾向是把它变成字典中的字典。姓氏为关键字的值为' first',' date',' total attend'。总人数计算为for循环的一部分。
但字典中的字典并不会感觉到pythonic。我觉得我正在围绕一个更简单的解决方案。特别是,一旦我开始编写输出文件。在dict中访问dict的值感觉不对。
关于更好方法的想法或建议?
这是我昨晚写的代码示例:
data = [This is the data from the .xlsx as a list of lists]
final_data = dict()
dict_errors = 0
for i in data:
if i[1] in final_data:
final_data[i[1]]['total'] = final_data[i[1]]['total'] + 1
if final_data[i[1]]['date'] < i[2]:
final_data[i[1]]['date'] = i[2]
else:
final_data[i[1]] = {
'first': i[0],
'date': i[2],
'total': 1
}
else:
dict_errors += 1