Python csv按行号分组行

Python csv group rows by n row numbers

我有一个csv文件,其中有几千行要解析。我想将行分组为5组,然后计算"value"列的平均值,并返回该组的最小和最大"value"以及该最小和最大值出现的结束时间。

1
2
3
4
5
6
7
Start Time,End Time,Value
12-4-2014 9:00,12-4-2014 10:00,3221.3
12-4-2014 10:00,12-4-2014 11:00,3233.5
12-4-2014 11:00,12-4-2014 12:00,3543.6
12-4-2014 12:00,12-4-2014 13:00,3711.5
12-4-2014 13:00,12-4-2014 14:00,3732.4
etc....

我想我必须为每一组5创建一个字典,然后在该字典上运行一些统计信息?


csv.reader只不过是一个迭代器,它遍历以列表形式返回每一行的行。

您可以使用list(iterator)将任何迭代器转换为序列。

您可以将任何序列分组如下

1
2
step = 5
split_data = [data[i:i+step] for i in range(0,len(data),step)]

然后可以对每个组进行迭代

1
2
3
4
5
split_data = (data[i:i+step] for i in range(0,len(data),step))
#note i use an iterator comprehension this time since i dont want to loop over the stuff twice

for grouping in split_data:
    analyze(grouping)