我是Python的新手,在csv文件中读取时遇到了一些问题。每列都有传感器名称、日期戳和读数。但是,有多个相同的传感器名称,我已经列出了名为options的不同选项,如下所示
OPTIONS = []
with open('sensor_data.csv', 'rb') as f:
reader = csv.reader(f, delimiter = ',')
for row in reader:
if row[0] not in OPTIONS:
OPTIONS.append(row[0])
sensor_name = row[0]
datastamp = row[1]
readings = float(row[2])
print(OPTIONS)
选项 prints fine
但现在我在检索任何读数时遇到了问题,并使用它们来计算每个唯一传感器名称的平均和最大读数。你知道吗
这里是a few lines of sensor_data.csv,从2018-01-01到2018-12-31,传感器1到传感器25。你知道吗
任何帮助都将不胜感激。你知道吗
下面是一个简短的版本
对于
readings
变量,您只需要读取每一行。获得平均读数的一种方法是跟踪读数的总和和计数(分别为sum_readings
和count_readings
),然后在for循环之后,可以通过将总和除以计数来获得平均值。您可以通过使用读取最小值(我假设为0)初始化max_readings
变量来获得最大值,然后在当前读取大于max_readings
(max_readings < readings
)时更新变量编辑:对不起,我看错了问题。如果您想得到每个唯一选项的最大值和平均值,有一种更直接的方法,就是使用一个额外的字典类型变量
OPTIONS_READINGS
,它的键是选项名,值是读数列表。只需分别使用表达式max(OPTIONS_READINGS[option])
和sum(OPTIONS_READINGS[option]) / len(OPTIONS_READINGS[option])
,就可以找到选项的最大和平均读数。你知道吗相关问题 更多 >
编程相关推荐