python数据分析篇
继爬虫篇后,站长在电影网爬取了Top300的数据形成表格存放在了项目里面,今天用这些数据讲一下数据分析
期望效果

1.首先我们建一个ipynb文件
因为ipynb文件可以查看可视化图表,所以我们用这个写
2.下载pandas插件
pip install pandas
pandas是专门用于读取csv文件的数据,并对csv文件进行数据写入和写出
import pandas as pd
3.下载可视化代码库matplotlib
pip install matplotlib
引入
from matplotlib.axes import Axesimport matplotlib.pyplot as plt
4.建立四个可视化图表的雏形
figure, axes = plt.subplots(nrows=2, ncols=2, figsize=(12, 10), dpi=100)
5.获取csv数据
df=pd.read_csv("movies.csv",usecols=["电影名","年份","上映时间","语言","类型","评分"])
数据结构如图

6.定义四个图表
axes1:Axes=axes[0][0]axes2:Axes=axes[0][1]axes3:Axes=axes[1][0]axes4:Axes=axes[1][1]
5.不同年份电影数量的柱状图
获取年份yearcount=df.groupby("年份")["年份"].count()获取最大的年份和最小的年份并对其进行去重maxyear=yearcount.index.max()minyear=yearcount.index.min()xdata=(df.sort_values("年份",ascending=True)["年份"]).drop_duplicates()//设置x轴,最小的年份到最大的年份之间所有的年份x=[i for i in range(minyear, maxyear+1)]//y轴,用for循环获取每年的数量,没有就是0y=[int(yearcount.get(i,0)) for i in x]//解决中文乱码plt.rcParams["font.sans-serif"]=["SimHei"]axes1.plot(x,y)axes1.set_title("不同年份电影数量")axes1.set_xlabel("年份")axes1.set_xticks(x[::8])axes1.set_yticks([i for i in range(0,31,3)])axes1.set_ylabel("数量")
效果
6.不同语言电影数量的柱状图,和折现图一样
lancount=df.groupby("语言")["语言"].count()labels=[i for i in df["语言"].drop_duplicates()]size=[int(lancount.get(i)) for i in labels]axes2.bar(labels,size)axes2.set_title("不同语言电影数量")axes2.tick_params(axis='x', rotation=90) # 旋转X轴标签
效果

7.不同类型电影数量的柱状图
获取类型typedata=df["类型"].str.split(",")typelist=[]obj={}//学过java的都知道,通过建立的一个键值对,如果键值对不存在,设置为1,否则+1for item in typedata:for t in item:if(t in obj): obj[t]+=1else: obj[t] =1labels3=obj.keys()size3=[int(obj.get(i)) for i in labels3]axes3.bar(labels3,size3)axes3.set_title("不同类型电影数量")axes3.tick_params(axis='x', rotation=90) # 旋转X轴标签
8.根据评分显示的电影数量占比(饼图)
scorelist=df["评分"].drop_duplicates()scorecount=df.groupby("评分")["评分"].count()scoresize=[scorecount.get(i) for i in scorelist]axes4.pie(scoresize,labels=scorelist, autopct='%1.1f%%')axes4.legend(loc='lower center', ncol=4, bbox_to_anchor=(0.5, -0.2))
效果

数据分析可视化其实很简单,只要照着文档做就行,官方文档:
https://matplotlib.org.cn/stable/gallery/index.html

下一章:web应用
需要了解服务器和域名的购买以及返佣政策的可以找我,我有朋友做这方面对这些比较了解。第一个群:只讨论java+vue的项目,学历提升和卖服务器的就别进了,进了也会被踢。第二个群:只讨论python项目,以后python的代码和教程会在群里开源,学历提升和卖服务器的就别进了,进了也会被踢。