Python csv按行号分组行

时间:2014-12-11 23:56:04

标签: python csv

我有一个csv文件,有几千行,我试图解析。我想将行分组为5组,然后计算“值”列的平均值,并返回该组的最小值和最大值“值”以及发生最小值和最大值的结束时间。

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创建一个字典,然后在该字典上运行一些统计数据?

1 个答案:

答案 0 :(得分:1)

csv.reader只是行上的迭代器,它将每行作为列表返回

您可以使用list(iterator)

将任何迭代器转换为序列

您可以按如下方式对任何序列进行分组

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

然后您可以遍历每个组

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)