关于#python#的问题,如何解决?

想要以年份进行分组,求出每年价格的平均价格,并画出折线图,该怎么写

img

参考角度2 的代码 , 如有帮助给个采纳谢谢

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
# 创建字体对象
font = FontProperties(fname='PingFang Bold.ttf')
# 读取csv文件并存储为DataFrame格式
data = pd.read_csv('大学生消费调查.csv', sep=',')
# print(data)
# 角度一:根据学院分析数据
college_data = data.groupby(['学院']).sum()
# print(college_data)

# 角度二:根据年级分析数据
# 将学年从文字表示映射为数字表示

data['学年'] = data['学年'].map({'大一': 1, '大二': 2, '大三': 3, '大四': 4})
# print(data['学年'])
# 可视化方式一:绘制不同学院学生月消费总额比较的直方图
college_data.plot(kind='bar', y=['月消费总额(元)'])
#
plt.title('各学院学生月消费总额比较', fontproperties=font)
plt.xlabel('学院', fontproperties=font)
plt.xticks(range(len(college_data.index)), college_data.index, fontproperties=font)
plt.ylabel('月消费总额(元)', fontproperties=font)
# 设置图例字体
plt.legend(prop=font)
plt.show()

# 可视化方式二:绘制不同年级学生各项支出平均值的折线图
grade_data = data.groupby(['学年'])[['学费(元)', '住宿费(元)', '伙食费(元)', '交通费(元)', '娱乐费(元)']].mean()
print(grade_data)
# 将学年从数字表示还原为文字表示
grade_data.index = grade_data.index.map({1: '大一', 2: '大二', 3: '大三', 4: '大四'})
# 可视化方式二:绘制不同年级学生各项支出平均值的折线图
grade_data.plot(kind='line', y=['学费(元)', '住宿费(元)', '伙食费(元)', '交通费(元)', '娱乐费(元)'])
plt.title('不同年级学生各项支出平均值比较', fontproperties=font)
plt.xlabel('学年', fontproperties=font)
plt.xticks(range(len(grade_data.index)), grade_data.index, fontproperties=font)
plt.ylabel('金额(元)', fontproperties=font)
plt.legend(prop=font)
plt.show()


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^