python项目

 

泉州信息工程学院

软件学院

课程设计报告书

 

:   Python程序设计与高级应用         

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

团队成员:                                         

 

 

 

 

 

 

一、项目简介

1.1 项目博客地址

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

1.2 项目完成的功能与特色

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

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

   1.3 项目采用的技术栈

pandas数据分析,NumPy科学计算库,seabornMatplotlib数据可视化,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 不足之处

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

posted @ 2019-12-15 19:11  小叮当呀  阅读(418)  评论(0编辑  收藏  举报