【Python】读取文本数据,并作简单数据分析

来自CAU李光军《Python语言程序设计》的课后练习

作为一个科班生,上这门公选课实在是有点说不过去hh

但由于我只是一个python究极小白,所以也没有什么不对劲orz

(欢迎各位大佬对代码批评指正)

更新此贴:仅作为复习总结使用,同校的朋友可以参考(不过不建议照搬啊hh)

任务要求:

1.读取数据

(1)葡萄酒探索

2.处理数据

(1)查看白葡萄酒共分为几种品质等级。

(2)按白葡萄酒等级将数据集划分为7个子集,统计在每个品质的样本量。

(3) 统计在每个品质的样本量

(4)求每个数据集中fixed acidity的均值(保留小数点后2位)

(5)通过读论文,你可以分析的其他问题,有简单的描述。

提供:去格式的代码和运行结果。不建议直接提交“.ipynb”格式文件。

数据集:

winequality_red.csv

winequality_white.csv

数据说明:

使用红葡萄酒(学号最后一位为偶数和零)和白葡萄酒(学号最后一位为奇数)样本创建了两个数据集。

输入包括客观测试(如PH值),输出基于感官数据(葡萄酒专家至少进行3次评估的中位数)。每位专家对葡萄酒质量进行分级

介于0(非常差)和10(非常优秀)之间。

实例数:红酒-1599;白葡萄酒-4898。

6.属性数:11+输出属性

注意:一些属性可能是相关的,因此应用某种类型的特征选择。

7.属性信息:

输入变量(基于理化测试):

1-固定酸度

2-挥发性酸度

3-柠檬酸

4-残余糖

5-氯化物

6-游离二氧化硫

7-总二氧化硫

8-密度

9-pH值

10-硫酸盐

11-酒精

输出变量(基于感官数据):

12-质量(分数在0到10之间)

参考文献:

Modeling wine preferences by data mining from physicochemical properties..pdf


import csv

# 1

f = open(r"C:\Users\86158\Desktop\winequality_white.csv")

reader = csv.reader(f, delimiter=";")

content = []

for row in reader:

    content.append(row)

# 2.1

f.close()

quality_list = []

for row in content[1:]:
    try:
        quality_list.append(int(row[-1]))
    except:
        continue

quality_count = set(quality_list)

print(f"葡萄酒共{len(quality_count)}种等级,为{quality_count}")

# 2.2

content_dict = {}

for row in content[1:]:
    try:
        quality = int(row[-1])
    except:
        continue

    if quality not in content_dict.keys():

        content_dict[quality] = [row]

    else:

        content_dict[quality].append(row)

for key in content_dict:

    print(f"{key}等级:{len(content_dict[key])}")

# 2.3

number_tuple = []

for key, value in content_dict.items():

    number_tuple.append((key, len(value)))

print(f"\n统计每种品质的样本量:{number_tuple}")

# 2.4

mean_list = []

for key, value in content_dict.items():

    sum = 0

    for row in value:

        sum += float(row[0])

    mean_list.append((key, sum / len(value)))

print("\n每种品质的fixed acidity均值如下:")

for item in mean_list:

    print(f"{item[0]}:{'%.2f' % item[1]}")

# 2.5

# 1 等级中值为6,且各等级的标本量基本符合统计规律的正态分布。
# 2 等级越高,fixed acidity越大。
# 3 某些化学物质属性之间相关联。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MorleyOlsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值