python项目,,泉州信息工程学院软件


泉州信息工程学院

软件学院

课程设计报告书

课 程 名:Python程序设计与高级应用

课程设计项目名称:春晚节目单分析

团队成员: 无

一、项目简介

1.1项目博客地址

https://www.cnblogs.com/jianghui1/p/12045494.html

1.2 项目完成的功能与特色

功能:读取本地的春晚节目单.xlsx数据,并对数据进行清洗,把相同类型节目分为一类进行数据分析并以图的形式表现出来。删去无用的空值,统计出现次数前5名的演员。

特色:把杂乱无章的数据清洗后,再构建不同的数学模型对数据进行分析。

1.3项目采用的技术栈

pandas数据分析,NumPy科学计算库,seaborn和Matplotlib数据可视化,EasyGui图形用户界面。

1.4项目借鉴源代码的地址

1.5团队成员任务分配表

二、项目的需求分析

统计每年各类型节目的数量。分析每年各种类型节目数量的变化,并用折线图展现出变化。分析演员出现次数前5名的明星,并使用柱状图展示出其各自出现的次数。

三、项目功能架构图、主要功能流程图

项目功能架构图:

技术图片

主要功能流程图:

技术图片

四、系统模块说明

4.1系统模块列表

1)统计每年各类型节目的数量

2)每年各种类型节目数量变化

3)演员出现次数前5名的明星

4.2各模块详细描述(名称,功能,运行截图,关键源代码)

1、名称:统计每年各类型节目的数量

功能:将本地的春晚节目单.xlsx数据加载到DataFrame中,再转换成以每年为关键字的字典数据。按年份分割节目列表,把同年的不同名称但类型相同的节目归为一类。最终以字典的形式统计数量并输出。

运行截图:

技术图片

关键源代码:

for i in range(len(a)):

if ‘歌‘ in a[i]:

a[i] = ‘歌舞类(歌曲、舞蹈、歌舞)‘

elif ‘舞‘ in a[i]:

a[i] = ‘歌舞类(歌曲、舞蹈、歌舞)‘

elif ‘小品‘ in a[i]:

a[i] = ‘语言类(小品、相声)‘

elif ‘相声‘ in a[i]:

a[i] = ‘语言类(小品、相声)‘

elif ‘戏‘ in a[i]:

a[i] = ‘戏曲类‘

elif ‘剧‘ in a[i]:

a[i] = ‘戏曲类‘

else:

a[i] = ‘其它(包括开场、魔术、武术、杂技等)‘

m = 0

for e in yeardict:#根据各年数量分割所有节目种类列表

n = yeardict[e] + m

categorylist.append(a[m:n])

m = n

2、名称:每年各种类型节目数量变化

功能:把每年不同类型的节目数量变化绘制成折线图。

运行截图:

技术图片

关键源代码:

#图表显示中文

import matplotlib as mpl

mpl.rcParams[‘font.sans-serif‘] = [‘SimHei‘]

mpl.rcParams[‘axes.unicode_minus‘] = False

for e in categorylist:#取数据并存进列表里

list1 = []

for eyear in yearlist:

if e in alldict[eyear]:

list1.append(alldict[eyear][e])

for i in range(len(categorylist)):#折线图

x = yearlist

y = alllist[i]

plt.plot(x,y,label=categorylist[i])

3、名称:演员出现次数前5名的明星

功能:用柱状图显示历年出现次数前5的演员

运行截图:

技术图片

关键源代码:

d = np.nan

while True:#删除空值

if d in a:

a.remove(d)

else:

break

li = sorted(dict1.items(),reverse=True,key=lambda x:x[1])#对字典降序

sns.barplot("演员","出现次数",palette="RdBu_r",label=‘演员出现次数Top 5‘,data=df)#柱状图

五、项目总结

5.1 特点

把数量多并且杂乱的数据清洗后,生成所需的各种图,可以直观的看出数据的变化。

5.2不足之处

项目简单,只进行了数据处理与分析。

python项目

评论关闭