白葡萄酒品质探索
变量名
含义
fixed acidity
固定酸度
volatile acidity
挥发性酸度
citric acid
柠檬酸
residual sugar
剩余糖
chlorides
氯化物
free sulfur dioxide
游离二氧化碳
total sulfur dioxide
总二氧化硫
density
密度
pHpH
值
sulphates
酸碱盐
alcohol
酒精
quality
品质
实战演练 1:读取白葡萄酒品质数据集
该数据集的数据形式如下:
首先,我们需要将存储在本地的数据集white_wine.csv读取入内存中。
说明:引入csv模块,打开文件
将数据保存于列表content中
打印content前5行
import csv
实战演练 2 查看白葡萄酒中总共分为几个品质
品质quality变量在数据中是一个离散变量,而不是连续的,所以它只会有固定的几个等级。那么我们用Python中自带的集合set来查看白葡萄酒中总共的品质等级
说明:
使用集合set查看白葡萄酒总共分为几个品质,并将所有品质等级保存在集合unity_quality中
其中,品质等级数据在最后一列
实战演练 3 : 按白葡萄酒等级将数据集划分为7个子集
将数据按白葡萄酒等级quality进行切分为7个子集,保存到一个字典中,字典的键为quality具体数值,值为归属于该quality的样本列表
说明
按白葡萄酒等级将数据集划分为7个子集,用字典保存每个子集,字典变量名为content_dict,变量的关键词key为品质,值value为每个品质子集的数据列表。
实战演练4: 统计在每个品质的样本量
那么,你会不会好奇每个品质的样本是不是有多有少呢?哪个品质的样本量多一些,哪个又少一点?
说明:
统计每个品质下的样本数,保存为number_tuple,该变量为一个列表,每个元素是一个二元元组,元组第一个元素是品质,第二个元素是样本数
实战演练5: 求每个数据集中fixed acidity的均值
既然白葡萄酒有品质的区别,那么是不是每个品质的fixed acidity区别会很大呢?
说明:
计算每个品质下变量fixed acidity的均值,并保存于列表mean_tuple中
要求列表中每一个元组的第一个元素为quality,第二个元素为该品质下fix acidity的均值
import csv
f = open(r"C:\Users\Macbook Pro\Desktop\python作业\white_wine.csv")
#将文件"white_wine.csv"以只读方式打开,保存打开文件为f
reader = csv.reader(f)
#对打开的文件对象f使用csv.reader()方法,并保存为reader
content = []
#新建列表content
for row in reader:
content.append(row)
#使用for循环,从reader中读取每一行数据添加到content中
for i in range(5):
print(content[i])
#打印content前10行
f.close()
qualities = []
#新建列表qualities,用于保存每个样本的品质等级
for item in content[1:]:
qualities.append(int(item[-1]))
#qualities 含有多个相同的数,因此我们可以用集合set的无序性
unity_quality = set(qualities)
#unity_quality是set([3, 4, 5, 6, 7, 8, 9])
print (unity_quality)
content_dict={}
#新建字典content_dict, 用于存储每个子数据集
for row in content[1:]:
#对content除第一行外进行for循环
quality = int(row[-1])
#每个循环中,选取quality变量的值,转为int型,存储为quality
if quality not in content_dict.keys():
content_dict[quality]=[row]
else:
content_dict[quality].append(row)
print (content_dict[3])
#打印content_dict的键
#统计在每个品质的样本量
number_tuple = []
for quality in content_dict.keys():
number_tuple.append((quality,len(content_dict[quality])))
#求每个数据集中fixed acidity的均值
mean_tuple=[]
for quality,samples in content_dict.items():
sum_=0
for sample in samples:
sum_+=float(sample[0])
mean_tuple.append((quality,sum_/len(content_dict[quality])))
print (mean_tuple)
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。
首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:编程语言、Java开发、python、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、作业代写、安装包资源发送或安装、软件使用指导等服务。
我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。