python的问题,有会这道题的吗?

白葡萄酒品质探索

 

      变量名

    含义

      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、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、作业代写、安装包资源发送或安装、软件使用指导等服务。

我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。