实验目的 1.掌握数据读取的函数 2.熟悉for语句循环遍历 3.掌握列表、元组、字典和集合的特效以及常用方法(append().len()) 4.灵活掌握通过切片方式获取数据 实验内容(代码)
#1.读取数据
path=r'./white_wine.csv'
import csv
if __name__ == '__main__':
f = open(path)
reader = csv.reader(f)#delimiter字段分割符,默认是逗号,每一个单元格作为一个元素,1行12个元素
# reader=csv.reader(f,delimiter=';')
content = []
for row in reader:
content.append(row)
f.close()
for i in range(5):
print(content[i],len(content[i]))
#2.处理数据
#(1)查看葡萄酒共分为几种等级。
quality_list = []
for row in content[1:]:
quality_list.append(int(row[-1]))
quality_count = set(quality_list)
print(f"葡萄酒共有{len(quality_count)}种等级,分别是{quality_count}")
#Python3.6新增的f-字符串格式化
#(2)葡萄酒等级有7种,统计在每个品质中的样本量
content_dict = {} #{'品质':样本量,}
for row in content[1:]:
quality = int(row[-1])
if quality not in content_dict.keys():
content_dict[quality] = [row]#把row当做只有一行的二维数据加入字典作为键当前quality的值
#print(row)
#print([row])
else:
content_dict[quality].append(row)
#当前键quality对应的值为一个二维数据集,row作为一位数据的一行追加到二维数据的末尾
for key in content_dict:
print(f"{key}等级:{len(content_dict[key])}")
#print(content_dict[9])
#(3)统计在每个品质的样本量
number_tuple = []
for key,value in content_dict.items():
number_tuple.append((key,len(value)))
print(number_tuple)
#(4)求每个数据集中“fixed acidity”的均值。
mean_list = []
for key,value in content_dict.items():
sum = 0
for row in value:
sum += float(row[0]) # 第1列数据
mean_list.append((key,sum/len(value)))#用元组和列表都一样
for item in mean_list:
print(f"{item[0]}:{item[1]}")
运行结果: