计算每小时平均值

2024-06-28 16:28:57 发布

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

我必须处理一个csv文件中的大量数据,该文件包含日期、时间和几个值,包括我需要的值。你知道吗

我用python制作了一个GUI,使用tkinter加载文件。你知道吗

程序生成一个新的csv文件来转储处理后的数据,然后打开包含原始数据的csv。你知道吗

我需要每行第18列中包含的值的平均每小时数。我已经有一个这样的程序了。我将某个小时内的所有值视为一个块。你知道吗

问题是,每个块计算的和在第8个块之后开始偏离(特别是,它忽略了所述块的第一个值)。你知道吗

这是一个原始数据的例子(我知道它看起来很混乱,我不知道如何上传一个文件,只是复制粘贴到一个文本文件,并保存为csv)。你知道吗

fecha,hora,VoltajeParticulas,,,,,,,,,,,,,,,VoltajeParticulas
2019-02-14,00:06,0.65918,,5.351563,,,,,,,,,,,,,0.65918
2019-02-14,00:13,0.620117,,,,,,,,,,,,,,,0.620117
2019-02-14,00:20,0.74707,,,,,,,,,,,,,,,0.74707
2019-02-14,00:26,0.683594,,,,,,,,,,,,,,,0.683594
2019-02-14,00:33,0.688477,,,,,,,,,,,,,,,0.688477
2019-02-14,00:40,0.639648,,,,,,,,,,,,,,,0.639648
2019-02-14,00:47,0.688477,,,,,,,,,,,,,,,0.688477
2019-02-14,00:53,0.625,,,,,,,,,,,,,,,0.625
2019-02-14,01:00,0,,0.063477,,,,,,,,,,,,,0
2019-02-14,01:07,0,,,,,,,,,,,,,,,0
2019-02-14,01:14,0,,,,,,,,,,,,,,,0
2019-02-14,01:20,0,,,,,,,,,,,,,,,0
2019-02-14,01:27,0,,,,,,,,,,,,,,,0
2019-02-14,01:34,0,,,,,,,,,,,,,,,0
2019-02-14,01:41,0.058594,,,,,,,,,,,,,,,0.058594
2019-02-14,01:47,0.004883,,,,,,,,,,,,,,,0.004883
2019-02-14,01:54,0,,,,,,,,,,,,,,,0
2019-02-14,02:01,0,,0.053711,,,,,,,,,,,,,0
2019-02-14,02:08,0.053711,,,,,,,,,,,,,,,0.053711
2019-02-14,02:14,0,,,,,,,,,,,,,,,0
2019-02-14,02:21,0,,,,,,,,,,,,,,,0
2019-02-14,02:28,0,,,,,,,,,,,,,,,0
2019-02-14,02:35,0,,,,,,,,,,,,,,,0
2019-02-14,02:41,0,,,,,,,,,,,,,,,0
2019-02-14,02:48,0,,,,,,,,,,,,,,,0
2019-02-14,02:55,0,,,,,,,,,,,,,,,0
2019-02-14,03:02,0,,0.068359,,,,,,,,,,,,,0
2019-02-14,03:08,0,,,,,,,,,,,,,,,0
2019-02-14,03:15,0,,,,,,,,,,,,,,,0
2019-02-14,03:22,0.068359,,,,,,,,,,,,,,,0.068359
2019-02-14,03:29,0,,,,,,,,,,,,,,,0
2019-02-14,03:35,0,,,,,,,,,,,,,,,0
2019-02-14,03:42,0,,,,,,,,,,,,,,,0
2019-02-14,03:49,0,,,,,,,,,,,,,,,0
2019-02-14,03:56,0,,,,,,,,,,,,,,,0
2019-02-14,04:02,0,,0,,,,,,,,,,,,,0
2019-02-14,04:09,0,,,,,,,,,,,,,,,0
2019-02-14,04:16,0,,,,,,,,,,,,,,,0
2019-02-14,04:23,0,,,,,,,,,,,,,,,0
2019-02-14,04:29,0,,,,,,,,,,,,,,,0
2019-02-14,04:36,0,,,,,,,,,,,,,,,0
2019-02-14,04:43,0,,,,,,,,,,,,,,,0
2019-02-14,04:50,0,,,,,,,,,,,,,,,0
2019-02-14,04:56,0,,,,,,,,,,,,,,,0
2019-02-14,05:03,0,,0.014648,,,,,,,,,,,,,0
2019-02-14,05:10,0.014648,,,,,,,,,,,,,,,0.014648
2019-02-14,05:17,0,,,,,,,,,,,,,,,0
2019-02-14,05:23,0,,,,,,,,,,,,,,,0
2019-02-14,05:30,0,,,,,,,,,,,,,,,0
2019-02-14,05:37,0,,,,,,,,,,,,,,,0
2019-02-14,05:44,0,,,,,,,,,,,,,,,0
2019-02-14,05:50,0,,,,,,,,,,,,,,,0
2019-02-14,05:57,0,,,,,,,,,,,,,,,0
2019-02-14,06:04,0,,0.024414,,,,,,,,,,,,,0
2019-02-14,06:11,0,,,,,,,,,,,,,,,0
2019-02-14,06:17,0,,,,,,,,,,,,,,,0
2019-02-14,06:24,0,,,,,,,,,,,,,,,0
2019-02-14,06:31,0,,,,,,,,,,,,,,,0
2019-02-14,06:38,0.024414,,,,,,,,,,,,,,,0.024414
2019-02-14,06:44,0,,,,,,,,,,,,,,,0
2019-02-14,06:51,0,,,,,,,,,,,,,,,0
2019-02-14,06:58,0,,,,,,,,,,,,,,,0
2019-02-14,07:05,0,,2.124023,,,,,,,,,,,,,0
2019-02-14,07:11,0,,,,,,,,,,,,,,,0
2019-02-14,07:18,0,,,,,,,,,,,,,,,0
2019-02-14,07:25,0,,,,,,,,,,,,,,,0
2019-02-14,07:31,0,,,,,,,,,,,,,,,0
2019-02-14,07:38,0,,,,,,,,,,,,,,,0
2019-02-14,07:45,0.698242,,,,,,,,,,,,,,,0.698242
2019-02-14,07:52,0.771484,,,,,,,,,,,,,,,0.771484
2019-02-14,07:58,0.654297,,,,,,,,,,,,,,,0.654297
2019-02-14,08:05,0.678711,,6.196289,,,,,,,,,,,,,0.678711
2019-02-14,08:12,0.668945,,,,,,,,,,,,,,,0.668945
2019-02-14,08:19,0.610352,,,,,,,,,,,,,,,0.610352
2019-02-14,08:26,0.654297,,,,,,,,,,,,,,,0.654297
2019-02-14,08:32,0.65918,,,,,,,,,,,,,,,0.65918
2019-02-14,08:39,0.727539,,,,,,,,,,,,,,,0.727539
2019-02-14,08:46,0.717773,,,,,,,,,,,,,,,0.717773
2019-02-14,08:53,0.698242,,,,,,,,,,,,,,,0.698242
2019-02-14,08:59,0.78125,,,,,,,,,,,,,,,0.78125
2019-02-14,09:06,0.717773,,6.103514,,,,,,,,,,,,,0.717773
2019-02-14,09:13,0.693359,,,,,,,,,,,,,,,0.693359
2019-02-14,09:20,0.742188,,,,,,,,,,,,,,,0.742188
2019-02-14,09:26,0.74707,,,,,,,,,,,,,,,0.74707
2019-02-14,09:33,0.771484,,,,,,,,,,,,,,,0.771484
2019-02-14,09:40,0.805664,,,,,,,,,,,,,,,0.805664
2019-02-14,09:47,0.800781,,,,,,,,,,,,,,,0.800781
2019-02-14,09:53,0.825195,,,,,,,,,,,,,,,0.825195
2019-02-14,10:00,0.751953,,4.633789,,,,,,,,,,,,,0.751953
2019-02-14,10:07,0.742188,,,,,,,,,,,,,,,0.742188
2019-02-14,10:14,0.761719,,,,,,,,,,,,,,,0.761719
2019-02-14,10:20,0.74707,,,,,,,,,,,,,,,0.74707
2019-02-14,10:27,0.795898,,,,,,,,,,,,,,,0.795898
2019-02-14,10:34,0.834961,,,,,,,,,,,,,,,0.834961
2019-02-14,11:25,87,,,,,,,,,,,,,,,

此函数用于计算每个块的平均值:

def processor():
with open ("Datos_procesados1.csv", mode='w') as csv_file:
    fieldnames = ['Fecha', 'Hora', 'Promedio']
    writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
    writer.writeheader()

    with open(main.filename) as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        line_count = 0
        prom_count = 0
        adder = 0
        prom = 0
        datablock = 0

        for row in csv_reader:
            if line_count == 0:
                line_count += 1
                date = row[0]
            else:
                alpha,bravo = row[1].split(':')
                intalpha = int(alpha)
                date = row[0]
                if intalpha == datablock:
                    prom_count = prom_count + 1
                    adder = adder + float(row[17])
                    prom = float(adder) / prom_count
                    floatprom = float(prom)
                    line_count += 1
                    print("Test")
                else: 
                    print("Block!")
                    print(adder)
                    print(prom_count)
                    print(prom)
                    prom = float(adder) / prom_count
                    writer.writerow({'Fecha':date,'Hora':datablock,'Promedio':floatprom})
                    prom_count = 0
                    prom = 0
                    adder = 0
                    datablock += 1
                    line_count += 1

提前谢谢!你知道吗


Tags: 文件csvdatecountlinefloatreaderfile