Pythonic存储和比较csv或xlsx的方法

2024-09-21 03:24:49 发布

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

背景

当我在工作中运行报告时,在.xlsx文件中有以下内容。你知道吗

A1-名字 B1-姓氏 C1-出席日期

每一行包含参加我们活动的每个人的数据。我正在用python构建一个需要母版.xlsx文件并将其与另一个.xlsx进行比较,并给出以下输出。你知道吗

  1. 在过去两周内没有参加任何活动的人的.txt文件。你知道吗
  2. 过去4周内没有参加活动的人的.txt文件。你知道吗
  3. 一个.txt文件,里面有超过4周没有参加活动的人。你知道吗
  4. 一个新的母版.xlsx文件名,姓,参加日期

第二个.xlsx报告每周运行一次,但实际上其中包含一个月的出勤数据。这意味着如果joeblow在一个月内参加了6次,那么joeblow将在.xlsx文件中返回6行,每行都有一个唯一的日期。所以我要迭代数据,比较日期,只保留最近的一个。你知道吗

问题

实际上我已经做了以上的工作,我的第一个爱好是把它变成字典里的字典。其中,姓氏是值为“first”、“date”、“total attended”的键。总参与人数作为for循环的一部分进行计算。你知道吗

但字典里的字典并不会让人觉得像Python。我觉得我在寻找一个更简单的解决方案。尤其是,一旦我开始写输出文件。在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

Tags: 文件数据txtdatadate字典报告xlsx

热门问题