python2.7 - 按小时分组CSV数据

时间:2017-10-13 07:48:01

标签: python python-2.7 csv

我需要按照以下格式的数据逐日分组:

Hour of Day,Users,Sessions,Total Events
2016010100,12,12,550
2016010101,12,12,296
2016010102,9,7,289
2016010200,11,11,191
2016010201,5,5,61
2016010202,11,11,214
2016010300,15,15,746
2016010301,6,6,256
2016010302,9,9,933
2016010400,12,12,589
2016010401,5,5,278
2016010402,2,2,63

(00小时代表午夜到凌晨1点)

我需要找到一个python代码,它可以帮助我将数据分组为几小时,以便我可以进行统计摘要。输出应该是总共24个csv文件(每小时1个文件)。

小时00的所需输出示例:

Hour of Day, Users, Sessions, Total Event
2016010100,12,12,550
2016010200,11,11,191
2016010300,15,15,746
2016010400,12,12,589

由于该文件包含超过14000行,如何在所有时间内执行此操作?

请帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

将您的文件作为列表读取,如果第一个元素以小时格式结束,则使用逗号分隔每一行,然后使用列表解析分组:

read_file=open("input_file.txt")
text=read_file.readlines()
for i in range(24):
    hour_format="{:>02d}".format(i)
    output_list = ([line for line in text[1:] if (line.split(",")[0]).endswith(hour_format)])
    print ("{0}{1}{0}".format("#"*30, hour_format))
    print (text[0])
    for line in output_list:
        print (line.strip())