鱼C论坛

 找回密码
 立即注册
查看: 2893|回复: 2

有没有大佬哇救救孩子的python作业吧

[复制链接]
发表于 2022-12-26 11:00:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.family']='SimHei'  #显示汉字
plt.rcParams['font.sans-serif'] = ['SimHei']

df = pd.read_excel('ans/豆瓣电影Top250_已预处理.xlsx')  #打开预处理后的数据文件
## 请在下面补充代码,实现:增加年代列,分组统计不同年代电影数量并输出,绘制图形


## 补充代码结束
plt.show()
plt.savefig('step8/不同年代电影数量图.png')

本关任务:编写一个程序,统计不同年代优质电影发行的数量并绘制不同年代发行的电影数量柱状图。

任务分析:
1.每十年为一个年代,数据表中电影共分'30年代','40年代','50年代','60年代','70年代','80年代','90年代','21世纪00年代','21世纪10年代'九个年代。

在数据表中增加“年代”列,用cut()进行年代划分,根据每部电影的发行年代填充“年代”数据项的值。
df['发行时间'].astype(int) 可以将“发行时间”列的数据类型由str转为int。
2.用“年代”列进行分组统计,组内计算电影数量。

3.绘制年代电影数量饼图,保存在'step8/不同年代电影数量图.png'文件。图形设置如下:

标题为“不同年代电影发行数量图”
在左上角显示图例
需要在饼图外显示标签,饼图内显示占比,占比保留一位小数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-26 20:20:32 | 显示全部楼层
来论坛就是抄作业来了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-11 16:56:21 | 显示全部楼层
根据任务分析,下面是实现代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = 'SimHei'  # 显示汉字
plt.rcParams['font.sans-serif'] = ['SimHei']

df = pd.read_excel('ans/豆瓣电影Top250_已预处理.xlsx')  # 打开预处理后的数据文件

# 增加年代列,用cut()进行年代划分
bins = [1930, 1940, 1950, 1960, 1970, 1980, 1990, 2000, 2010, 2020]
labels = ['30年代', '40年代', '50年代', '60年代', '70年代', '80年代', '90年代', '21世纪00年代', '21世纪10年代']
df['年代'] = pd.cut(df['发行时间'].astype(int), bins=bins, labels=labels)

# 分组统计不同年代电影数量并输出
grouped = df.groupby('年代')['电影名称'].count()
print(grouped)

# 绘制图形
fig, ax = plt.subplots()
ax.pie(grouped.values, labels=grouped.index, autopct='%1.1f%%', startangle=90)
ax.set_title('不同年代电影发行数量图')
ax.legend(loc='upper left')
plt.axis('equal')

# 保存图形
plt.savefig('step8/不同年代电影数量图.png')
plt.show()
解析如下:

使用 pd.cut() 方法将 “发行时间” 列的数据划分为不同年代,将结果保存在 “年代” 列中。 bins 参数指定每个年代的边界,labels 参数指定每个年代的标签。

使用 groupby() 方法对 “年代” 列进行分组,使用 count() 方法计算每个年代的电影数量。

使用 plt.subplots() 方法创建一个包含单个子图的图形,使用 ax.pie() 方法绘制饼图。 grouped.values 和 grouped.index 参数提供饼图的数据和标签,autopct 参数指定饼图内标签的格式,startangle 参数指定饼图的起始角度。

使用 ax.set_title() 方法设置图形标题,使用 ax.legend() 方法添加图例,使用 plt.axis('equal') 方法使饼图比例相等。

使用 plt.savefig() 方法保存图形,使用 plt.show() 方法显示图形。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 01:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表