有哪些免费做电子名片的网站,网站源码 一品资源网,长沙企业网站建设公司,河南省建设厅网站2024电工杯B题保姆级分析完整思路代码数据教学
B题题目#xff1a;大学生平衡膳食食谱的优化设计及评价
以下仅展示部分#xff0c;完整版看文末的文章
import pandas as pd
df1 pd.read_excel(附件1#xff1a;1名男大学生的一日食谱.xlsx)
df1# 获取所有工作表名称
e…2024电工杯B题保姆级分析完整思路代码数据教学
B题题目大学生平衡膳食食谱的优化设计及评价
以下仅展示部分完整版看文末的文章
import pandas as pd
df1 pd.read_excel(附件11名男大学生的一日食谱.xlsx)
df1# 获取所有工作表名称
excel_file pd.ExcelFile(附件11名男大学生的一日食谱.xlsx)
sheet_names excel_file.sheet_names
sheet_namesdf3 pd.read_excel(附件3某高校学生食堂一日三餐主要食物信息统计表.xlsx)
df3# 获取所有工作表名称
excel_file pd.ExcelFile(附件3某高校学生食堂一日三餐主要食物信息统计表.xlsx)
sheet_names excel_file.sheet_names
sheet_names# 食谱提取foods df1[1名男大学生的一日食谱].dropna().values
meals {}
name [早餐,午餐,晚餐]
meal []for item in foods:if item in name:key itemmeal []continueif item ! 食物名称:meal.append(item)else:meals[key] mealmeals # 女大学生同理
df2 pd.read_excel(附件21名女大学生的一日食谱.xlsx)
df2foods df2[1名女大学生的1日食谱].dropna().values
meals_nv {}
name [早餐,午餐,晚餐]
meal []for item in foods:if item in name:key itemmeal []continueif item ! 食物名称: meal.append(item)else:meals_nv[key] mealmeals_nvfood_male pd.read_excel(./食谱.xlsx,sheet_name男大)
food_female pd.read_excel(./食谱.xlsx,sheet_name女大)
food_female.head()# 填充Nan值
# food_malefood_male.fillna(methodffill, axis0)
# food_femalefood_female.fillna(methodffill, axis0)food_male.ffill(axis0)
food_female.ffill(axis0)food_female.head()# 读取食物营养素
foods_nutrients pd.read_csv(./foods_nutrients.csv)
foods_nutrients.head()
# 计算营养素
# 计算每餐的总营养素
whole_day_nutrients_male {热量 (kcal): 0, 蛋白质 (g): 0, 脂肪 (g): 0, 碳水化合物 (g): 0}
male_ls []
for key in meals:total_nutrients {热量 (kcal): 0, 蛋白质 (g): 0, 脂肪 (g): 0, 碳水化合物 (g): 0}for item in meals[key]:for _, food in food_male.iterrows():if food[食物名称] item:nutrient foods_nutrients[foods_nutrients[食物] food[主要成分]].iloc[0]portion_size food[可食部克/份] * food[食用份数] / 100 # 换算成100g标准total_nutrients[热量 (kcal)] nutrient[热量 (kcal)] * portion_sizetotal_nutrients[蛋白质 (g)] nutrient[蛋白质 (g)] * portion_sizetotal_nutrients[脂肪 (g)] nutrient[脂肪 (g)] * portion_sizetotal_nutrients[碳水化合物 (g)] nutrient[碳水化合物 (g)] * portion_sizeprint(f{key}的总营养素, total_nutrients)male_ls.append(total_nutrients)whole_day_nutrients_male[热量 (kcal)] total_nutrients[热量 (kcal)]whole_day_nutrients_male[蛋白质 (g)] total_nutrients[蛋白质 (g)]whole_day_nutrients_male[脂肪 (g)] total_nutrients[脂肪 (g)]whole_day_nutrients_male[碳水化合物 (g)] total_nutrients[碳水化合物 (g)]
print(f一天的总营养素, whole_day_nutrients_male) # 同理 计算女大
whole_day_nutrients_female {热量 (kcal): 0, 蛋白质 (g): 0, 脂肪 (g): 0, 碳水化合物 (g): 0}
female_ls []
for key in meals_nv:total_nutrients {热量 (kcal): 0, 蛋白质 (g): 0, 脂肪 (g): 0, 碳水化合物 (g): 0}for item in meals_nv[key]:for _, food in food_female.iterrows():if food[食物名称] item:nutrient foods_nutrients[foods_nutrients[食物] food[主要成分]].iloc[0]portion_size food[可食部克/份] * food[食用份数] / 100 # 换算成100g标准total_nutrients[热量 (kcal)] nutrient[热量 (kcal)] * portion_sizetotal_nutrients[蛋白质 (g)] nutrient[蛋白质 (g)] * portion_sizetotal_nutrients[脂肪 (g)] nutrient[脂肪 (g)] * portion_sizetotal_nutrients[碳水化合物 (g)] nutrient[碳水化合物 (g)] * portion_sizefemale_ls.append(total_nutrients)print(f{key}的总营养素, total_nutrients)whole_day_nutrients_female[热量 (kcal)] total_nutrients[热量 (kcal)]whole_day_nutrients_female[蛋白质 (g)] total_nutrients[蛋白质 (g)]whole_day_nutrients_female[脂肪 (g)] total_nutrients[脂肪 (g)]whole_day_nutrients_female[碳水化合物 (g)] total_nutrients[碳水化合物 (g)]
print(f一天的总营养素, whole_day_nutrients_female) 绘制可视化图
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm# 设置中文字体
plt.rcParams[font.sans-serif] [SimHei] # 使用黑体
plt.rcParams[axes.unicode_minus] False # 解决坐标轴负数显示问题# 推荐摄入量
recommended_nutrients_male {热量 (kcal): 2400, 蛋白质 (g): 75, 脂肪 (g): 66.5, 碳水化合物 (g): 345}
recommended_nutrients_female {热量 (kcal): 1900, 蛋白质 (g): 60, 脂肪 (g): 49.5, 碳水化合物 (g): 275}# 创建子图
fig, axes plt.subplots(2, 2, figsize(14, 10))# 男大学生热量
axes[0, 0].bar([当前, 调整后, 推荐], [whole_day_nutrients_male[热量 (kcal)], adjusted_nutrients_male[热量 (kcal)], recommended_nutrients_male[热量 (kcal)]], color[red, blue, green])
axes[0, 0].set_title(男大学生热量摄入)# 女大学生热量
axes[0, 1].bar([当前, 调整后, 推荐], [whole_day_nutrients_female[热量 (kcal)], adjusted_nutrients_female[热量 (kcal)], recommended_nutrients_female[热量 (kcal)]], color[red, blue, green])
axes[0, 1].set_title(女大学生热量摄入)# 男大学生主要营养素
axes[1, 0].bar([蛋白质, 脂肪, 碳水化合物], [whole_day_nutrients_male[蛋白质 (g)], whole_day_nutrients_male[脂肪 (g)], whole_day_nutrients_male[碳水化合物 (g)]], colorred, label当前)
axes[1, 0].bar([蛋白质, 脂肪, 碳水化合物], [adjusted_nutrients_male[蛋白质 (g)], adjusted_nutrients_male[脂肪 (g)], adjusted_nutrients_male[碳水化合物 (g)]], colorblue, label调整后, alpha0.7)
axes[1, 0].bar([蛋白质, 脂肪, 碳水化合物], [recommended_nutrients_male[蛋白质 (g)], recommended_nutrients_male[脂肪 (g)], recommended_nutrients_male[碳水化合物 (g)]], colorgreen, label推荐, alpha0.5)
axes[1, 0].set_title(男大学生主要营养素摄入)
axes[1, 0].legend()# 女大学生主要营养素
axes[1, 1].bar([蛋白质, 脂肪, 碳水化合物], [whole_day_nutrients_female[蛋白质 (g)], whole_day_nutrients_female[脂肪 (g)], whole_day_nutrients_female[碳水化合物 (g)]], colorred, label当前)
axes[1, 1].bar([蛋白质, 脂肪, 碳水化合物], [adjusted_nutrients_female[蛋白质 (g)], adjusted_nutrients_female[脂肪 (g)], adjusted_nutrients_female[碳水化合物 (g)]], colorblue, label调整后, alpha0.7)
axes[1, 1].bar([蛋白质, 脂肪, 碳水化合物], [recommended_nutrients_female[蛋白质 (g)], recommended_nutrients_female[脂肪 (g)], recommended_nutrients_female[碳水化合物 (g)]], colorgreen, label推荐, alpha0.5)
axes[1, 1].set_title(女大学生主要营养素摄入)
axes[1, 1].legend()# 设置总体布局
plt.tight_layout()
plt.show() 以上仅为部分第一问代码其中更详细的思路、各题目思路、代码、讲解视频、成品论文及其他相关内容可以看下方名片获取哦