已给出第一问详细代码,完整获取链接为:
https://mbd.pub/o/bread/ZJmXmpxt
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
from matplotlib import rcParams
#问题1.对附件2中所给数据进行分析和数值化处理,并给出处理方法;
# 创建一个字体对象
font = FontProperties(fname=r"D:\Chrome_downloads\字体合并补全工具-压缩字库-1.1.0-windows-x64\songTNR.ttf", size=20)
config = {
"mathtext.fontset":'stix',
"font.family":'serif',
"font.serif": ['SimSun'],
"font.size": 20, # 字号,大家自行调节
'axes.unicode_minus': False # 处理负号,即-号
}
rcParams.update(config)
# 载入TimesSong(下载链接中),将'filepath/TimesSong.ttf'换成你自己的文件路径
SimSun = FontProperties(fname=r"D:\Chrome_downloads\字体合并补全工具-压缩字库-1.1.0-windows-x64\songTNR.ttf")
data = pd.read_excel(r"D:/2023年电工杯竞赛赛题/B题/附件2:调查数据.xlsx")
#将多选列进行分隔
data[['a_1', 'a_2','a_3','a_4','a_5','a_6','a_7','a_8']] = data['23、在网络中您主要进行哪些活动?'].str.split('┋', expand=True)
data[['b_1', 'b_2','b_3']] = data['24、您认为学习软件与课堂教学相比较最大的优势是什么?'].str.split('┋', expand=True)
data[['c_1','c_2','c_3','c_4']] = data['25、进入大学后在学习中困扰您的问题是什么?'].str.split('┋', expand=True)
data[['d_1','d_2','d_3','d_4']] = data['26、对于利用学习软件进行学习这种形式,您最关注的是'].str.split('┋', expand=True)
data[['e_1','e_2','e_3','e_4','e_5','e_6']] = data['27、您考虑过使用人工智能工具的哪些安全性?'].str.split('┋', expand=True)
data[['f_1','f_2','f_3']] = data['28、您认为以下哪些方面对人工智能学习工具很重要?'].str.split('┋', expand=True)
data[['g_1','g_2','g_3','g_4','g_5']] = data['29、您心目中的人工智能学习工具应该具有以下哪些功能?'].str.split('┋', expand=True)
data[['h_1','h_2','h_3','h_4']] = data['30、您认为人工智能学习工具融合到哪个学习环节?'].str.split('┋', expand=True)
data.fillna('0', inplace=True)
gender_counts = data['3、您所在的年级'].value_counts()
labels = ['大一', '大二', '大三', '大四']
colors = ['#8ECFC9','#FFBE7A','#FA7F6F','#82B0D2']
explode = (0, 0.01, 0.05, 0.1)
#plt.rcParams['font.family'] = 'Times New Roman'
fig, ax = plt.subplots(figsize=(8,6))
ax.pie(gender_counts, colors = colors, explode = explode,labels=labels, autopct='%1.1f%%', startangle=90,textprops={'fontproperties': font})
plt.title('专业分布图',fontproperties=font)
plt.savefig(r"D:/2023年电工杯竞赛赛题/B题/picture/img3.png",dpi=300)
#plt.rcParams.update({'font.size': 24})
plt.show()
# 计算不同专业的AI工具使用意愿占比
grouped = data.groupby(['2、您的专业', '12、若有人工智能学习工具,您是否会选择使用?']).size().unstack()
grouped['总数'] = grouped.sum(axis=1)
grouped['是'] = grouped[1] / grouped['总数']
grouped['否'] = grouped[0] / grouped['总数']
grouped.columns.name = ''
fig = plt.figure(figsize=(8, 6))
grouped[['是','否']].plot(kind = 'bar',width=0.5,stacked=True)
#plt.title('职业分布图',fontproperties=font)
plt.xlabel('专业',fontproperties=font)
plt.ylabel('是否会使用AI工具',fontproperties=font)
plt.xticks(range(0,4,1),labels=['文史','理工','管理','艺术'],rotation=0)
plt.savefig(r"D:/2023年电工杯竞赛赛题/B题/picture/img12.png",dpi=300)
plt.show()