分类: Python/Ruby
2022-12-16 17:38:41
# 将 release_date 转化为 pandas支持的时间序列
datalist.loc[:, 'release_date'] = pd.to_datetime(datalist.loc[:, 'release_date'])
# 获取 发行年份
datalist.loc[:, 'release_year'] = datalist.loc[:, 'release_date'].dt.year
# 进行字符串分割
temp_list = [i.split(",") for i in datalist["genres"]]
# 获取电影的分类,并去重
typelist = np.unique([i for j in temp_list for i in j])
# 发现typelist中有空值,删除空元素''
typelist = np.delete(typelist, typelist == '')
for column in typelist:
# 先增加所有电影类型列,初始值为0
datalist.loc[:, column] = 0
# 构建bool数组
mask = datalist.loc[:, 'genres'].str.contains(column)
# 修改
datalist.loc[mask, column] = 1
# 按照发行年份进行分组,统计各个电影各个年份的数量
res =外汇跟单gendan5.com datalist.groupby('release_year')[typelist].sum()
print(res)
# 绘图
# 创建画布
plt.figure()
# 默认不支持中文 ---修改RC参数
plt.rcParams['font.sans-serif'] = 'SimHei'
# 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
plt.rcParams['axes.unicode_minus'] = False
# 构建横轴数据
x = res.index
for movie_type in res.columns:
# 构建纵轴数据
y = res[movie_type]
# 绘制折线图
plt.plot(x, y)
# 增加标题
plt.title('电影类型随时间变化趋势图')
# 设置图例
plt.legend(res.columns, fontsize='x-small')
# 设置纵轴名称
plt.ylabel('数量')
# 设置横轴名称
plt.xlabel('年份')
# 增加网络曲线
plt.grid(True, alpha=0.2)
# 保存图片
plt.savefig('./电影类型随时间变化趋势图.jpg')
# 展示
plt.show()