有没有办法自动更改列表/目录名称?

2024-05-16 13:59:09 发布

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

这是我的问题

我有大量的csv和大量的数据,我想提取几行功能的一年。对我来说,把每一年分开是很重要的,所以我决定为每一年创建不同的列表/目录,并提取我感兴趣的数据

问题是每个文件的年数不同,手动创建列表/目录会太长

在我的代码中,我提取了最小年和最大年,现在我想创建一个循环,为我拥有的每一年重命名list/dict

我不知道我能用哪个函数。。也许我弄错了,我的逻辑现在不好?下面是我如何提取我在我的文件中有多少年

import csv
with open('file.csv') as rawFile:
reader = csv.DictReader(rawFile, delimiter=';')

firstDate = next(reader)["date"]
currentYear = firstDate.split('/')[-1]
minYear=int(currentYear)
for row in reader :
    date=row["date"]       

maxiYear=int(date.split('/')[-1])

nbList=maxiYear-minYear 
print(nbList)

非常感谢你的帮助,也很抱歉我的英语,很久没有说这种语言了

编辑:我的表格结构:

^{tb1}$

Tags: 文件csv数据目录列表datereaderint
1条回答
网友
1楼 · 发布于 2024-05-16 13:59:09

我们创建一个dict,年份作为键,相应行的列表作为值

我们可以使用collections.defaultdict 当我们访问一个还不存在的密钥时,这将动态创建空列表

我们只需对行进行迭代,并将每一行添加到该年度的列表中:

import csv
from collections import defaultdict


with open('file.csv') as rawFile:
    reader = csv.DictReader(rawFile, delimiter=';')

    rows_by_year = defaultdict(list)
    for row in reader:
        year = row["date"].split('/')[-1]
        rows_by_year[year].append(row)

相关问题 更多 >