如何获得多个列表中三个不同值的平均值?

2024-05-13 01:34:28 发布

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

我有一个文件,其中包含5分钟内每秒的数据。它包含时间戳、给定时间的温度、湿度和压力。我已经能够打开该文件,并将每组数据转换为自己的单独列表。这将打印许多不同的列表,这些列表看起来都很相似,但值略有不同。它输出的行的示例如下所示

['2019-10-07 14:37:13', '22.3', '48.9', '987.9']

该列表中的22.3表示温度,48.9表示湿度,987.9表示压力。我需要打印结果列表

def process_file():
infile = open('data.csv', 'r')
for x in infile:
    line = infile.readline()
    line = line.strip()
    line_contents = line.split(",")
    infile.close
    print(line_contents)
    

       

Tags: 文件数据示例列表deflinecontents时间
2条回答

试试这个

def process_file():
    infile = open('5min.csv', 'r')
    temp=0;hum=0;pres=0
    count=0
    line = infile.readline()    #do it since the first line is label as per you
    for x in infile:
        count+=1
        line = infile.readline()
        line = line.strip()
        line_contents = line.split(",")
        temp+=float(line_contents[1])
        hum+= float(line_contents[2])
        pres+=float(line_contents[3])        
    infile.close
    print([temp/count,hum/count,pres/count])

假设当前代码是正确的,您可以这样做

def process_file():
    infile = open('5min.csv', 'r')
    humidity_sum = 0
    temperature_sum = 0
    pressure_sum = 0
    for x in infile:
        line = infile.readline()
        line = line.strip()
        line_contents = line.split(",")
        humidity_sum += float(line_contents[1])
        temperature_sum += float(line_contents[2])
        pressure_sum += float(line_contents[3])
        infile.close
    humidity_mean = humidity_sum / len(infile)
    temperature_mean = temperatur_sum / len(infile)
    pressure_mean = pressure_sum / len(infile)
    print(humidity_mean, temperature_mean, pressure_mean)

相关问题 更多 >