您可以使用 python 中的 csv 模块从 csv 文件中获取数据,如下所示:
import csv
start_values = {'col3':[], 'col4':[], 'col5':[]}
end_values = {'col3':[], 'col4':[], 'col5':[]}
with open('example.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if row['col2'] == '\FR\Window open\Start':
start_values['col3'].append(float(row['col3']))
start_values['col4'].append(float(row['col4']))
start_values['col5'].append(float(row['col5']))
if row['col2'] == '\FR\Window open\End':
end_values['col3'].append(float(row['col3']))
end_values['col4'].append(float(row['col4']))
end_values['col5'].append(float(row['col5']))
csvfile.close()
print('Start average for col3: {:.2f}, col4: {:.2f}, col5: {:.2f}'.format(sum(start_values['col3'])/len(start_values['col3']), sum(start_values['col4'])/len(start_values['col4']), sum(start_values['col5'])/len(start_values['col5'])))
print('End average for col3: {:.2f}, col4: {:.2f}, col5: {:.2f}'.format(sum(end_values['col3'])/len(end_values['col3']), sum(end_values['col4'])/len(end_values['col4']), sum(end_values['col5'])/len(end_values['col5'])))
将此逗号分隔的 example.csv 与您的数据一起使用,
col1,col2,col3,col4,col5
Right,\FR\Window open\Start,16.9,11.2,18.2
Right,\FR\Window open\Start,16.5,11.7,17.5
Right,\FR\Window open\Start,16.9,11.7,18
Right,\FR\Window open\End,7.61,1.76,8.37
Right,\FR\Window open\End,7.3,1.74,8.6
Right,\FR\Window open\End,7.64,2.45,8.43
Right,\FR\Window close\Start,13,8.2,14.4
Right,\FR\Window close\Start,12.9,7.55,14.5
该程序将每一行读入字典以便于访问,正如您在寻找开始和结束的 ifs 中看到的 (if row['col2'] == '\FR\Window open\Start':)。然后它用它们各自的值填充start_values 和end_values 字典。最后,这些字典将如下所示:
{'col3': [16.9, 16.5, 16.9, 13.0, 12.9], 'col4': [11.2, 11.7, 11.7, 8.2, 7.55], 'col5': [18.2, 17.5, 18.0, 14.4, 14.5]}
上面那个是start_values。 “开始”行上的每一列数字都整齐地打包成一个列表。然后你所要做的就是print(sum(list)/len(list)) 和你的平均值,使用 String.format 整齐地格式化为 2 位小数。
您可以在official documentation 上了解有关使用 CSV 文件的更多信息。 here 是格式化字符串的便捷指南!