1、 课程信息表
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
import csv
plt.rcParams['font.sans-serif'] = 'simHei' #显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 默认是使用Unicode负号,设置正常显示字符,如正常显示负号
# 读入数据文件,设置编码方式为utf-8
file = open(r"D:/PycharmProjects/course(1).csv","r",encoding='utf-8')
course_data = file.read()
print(course_data)
print('\n\n')
# 把读入的网易云课堂字符串数据转换成二维列表
rows = course_data.split('\n') # rows类型是列表
print(rows)
print('\n\n')
final_data = []
for row in rows:
split_list = row.split(',')
final_data.append(split_list)
print(final_data)
print('\n\n')
# 显示前10门课
list10 = final_data[1:11]
print(list10)
print('\n\n')
# 显示前10门课的课程名
for row in list10:
print(row[0])
print('\n\n')
# 将前10门课的课程名保存到一个单独的列表中
c_name = []
list10 = final_data[1:11]
for row in list10:
c_name.append(row[0])
print("前10门课程是:",c_name)
print('\n\n')
# 将课程名称、课程价格和选课人数保存到两个列表中,类型分别为float 和int
# 数据类型无法进行转换,数据中可能存在\t \n 空格等,需要检查数据集
c_name_all = []
c_price = []
c_num = []
for row in final_data[1:len(final_data)]:
c_name_all.append(row[0])
c_price.append(float(row[2]))
c_num.append(int(row[3]))
print("课程名称的列表:",c_name_all)
print("课程价格的列表:",c_price)
print("选课人数的列表:",c_num)
print('\n\n')
# 选课人数最多课程信息
c_max = 0
index = 0
imax = 0
for row in c_num:
if c_max < row:
c_max = row
imax = index + 1
index += 1
print("选课人数最多的课程是:第 %d 条 记录" % imax, final_data[imax])
print('\n\n')
# 价格最贵的课程信息
c_max = 0
index = 0
imax = 0
for row in c_price:
if c_max < row:
c_max = row
imax = index+1
index += 1
print("价格最贵的课程是:第 %d 条 记录" % imax, final_data[imax])
print('\n\n')
# 发现课程价格和选课人数的关系
length = len(c_price)
datasets_X = np.array(c_price).reshape([length,1])
datasets_Y = np.array(c_num)
# 图像中显示
plt.scatter(datasets_X, datasets_Y, color = 'red')
plt.xlabel('价格')
plt.ylabel('选课人数')
plt.show()
course_dict = dict(zip(c_name_all,c_price))
print(course_dict)
# python3.x csv 文件写入方式和Python2.x不一样
file_dict = "D:/PycharmProjects/course(1).csv"
with open(file_dict,'w',encoding='utf-8',newline='') as csv_file:
writer = csv.writer(csv_file)
for key,value in course_dict.items():
writer.writerow([key,value])
2、分数线表
#0.读出文件
file = open(r"D:/Work/2014.xls","r",encoding='utf-8')
data = file.read()
#print(data)
print('\n\n')
#1.使用 split()方法将字符串对象转换为列表,存储到rows中。分隔符为“\n”。
rows = data.split('\n')
print(rows)
print('\n\n')
#2.创建一个名为 int_score 的整型列表变量,用于存放rows列表中各分数的值。创建一个名为 final_list 的列表变量,用于存放列表。
final_list = []
for row in rows:
split_list = row.split(',')
final_list.append(split_list)
print(final_list)
print('\n\n')
int_score = []
for row in final_list[1:len(final_list)]:
int_score.append(int(row[4]))
print('存放分数的列表的值:',int_score)
print('\n\n')
#3. 使用sort()方法对int_score排序。
int_score.sort()#从小到大
print(int_score)
print('\n\n')
int_score.sort(reverse=True)#从大到小
print(int_score)
print('\n\n')
#4.返回第一个列表的元素:[‘北京’, ’2014’, ’理科’, ’本科一批’, ’543’]
print(final_list[1])
#5.返回第1个列表的第1个元素:”北京”;返回第2个列表的第3个元素:”理科”;
print(final_list[1][0])
print(final_list[2][2])