2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享

news2024/12/26 16:38:30

一、背景特殊医学用途配方食品简称特医食品,是指为满足进食受限、消化吸收障碍、代谢素乱或者特定疾病状态人群对营养素或者膳食的特殊需要,专门加工配置而成的配方食品,包括0月龄至12月龄的特殊医学用途婴儿配方食品和适用于1岁以上的特殊医学用途配方食品。在医学营养管理与治疗方面起着重要作用。
特殊医学用途配方食品在生产和销售前需要经过严格的审批和注册过程,包括安全性、有效性的评估。所以在我国对于特殊医学用途配方食品的审核有着非常严格的规定。截至 2024 年4月,国内仅审批通过了 182 款特医食品(含已注销)。二、目标
1.提取 182款特殊医学用途配方食品产品标签、说明书(以下简称特医食品说明书)中的相关数据,并对提取的数据及 data.xlsx 数据进行预处理。
2.统计 182 款特医食品生产概况并可视化。
3.构建特医食品推荐系统。
三、任务
data.xlsx记录了 182 款特医食品的基本信息,特医食品说明书文件夹中包含 182 款特医食品说明书。请根据提供的数据,完成以下任务并撰写报告,在报告中详细描述各项任务的处理思路、过程及必要的结果。
任务1数据预处理
任务1.1读取182款特医食品说明书,按照表1的要求提取【营养成分表】中“每100k]”列的指定营养成分数据,将提取的数据保存到文件“result1.xlsx”中,同时在报告中列出每 100kJ(千焦)中蛋白质含量最高的三种特医食品,格式如表1(注意营养成分的单位)。

import pdfplumber
import pandas as pd
import os
import re

# 文件夹路径
folder_path = r"D:\desk\B题-特殊医学用途配方食品数据分析\数据\特医食品说明书"

# 要提取的营养成分及对应的列名
nutrient_mapping = {
    '能量': '能量(kJ)',
    '脂肪': '脂肪(g)',
    '碳水化合物': '碳水化合物(g)',
    '蛋白质': '蛋白质(g)',
    '钠': '钠(mg)',
    '氯': '氯(mg)',
    '钾': '钾(mg)',
    '磷': '磷(mg)',
    # 如果需要更多营养成分,可以在这里添加
}

# 初始化一个空的列表,用于存储所有的结果
results = []

# 获取文件夹中所有的PDF文件
pdf_files = [f for f in os.listdir(folder_path) if f.endswith('.pdf')]

for pdf_file in pdf_files:
    file_path = os.path.join(folder_path, pdf_file)
    # 提取注册证号,假设文件名就是注册证号
    registration_number = os.path.splitext(pdf_file)[0]

    # 初始化一个空的列表,用于存储所有的DataFrame
    dfs = []
    # 保存最新的表头
    last_header = None

    # 打开 PDF 文件
    with pdfplumber.open(file_path) as pdf:
        table_found = False  # 标记是否找到表格

 

 

任务1.2提取182款特医食品说明书中【产品类别】【组织状态】【适用人群】的数据,在 data.xlsx 数据中新增“产品类别”、“组织状态”、“适用人群”三列。以表2的格式将提取的数据保存到文件“result2.xlsx”中,同时在报告中列前5款特医食品的结果(须说明特殊情况的处理)。

任务 1.3 根据提取的【适用人群】信息,在 result2.xlsx 中新增“适用人群类别”列,对 182款特医食品的适用人群进行归类,类别分为“特医婴配食品”和“1岁以上特医食品”两种,将结果保存到文件“result2.xlsx”中。注3“特医婴配食品”是针对 0-12月龄人群的特殊医学用途配方食品,“婴儿”特指 0-12 月龄人群。

任务1.4特殊医学用途配方食品注册号的格式为:国食注字TY+4位年号+4位顺序号,顺序号第1位数字为“5”表示该食品为进口产品,顺序号第1位数字为“0”表示该食品为国产产品;4位年号为该食品的登记年份。基于任务1.3的result2.xlsx文件,新增“产品来源”和“登记年份”两列,提取 182 款特医食品的产品来源和登记年份数据其中产品来源分为“国产产品”和“进口产品”两种。以表3的格式将结果保存到文件“result2.xlsx”中,同时在报告中列出前5款特医食品任务 1.3和任务 1.4的结果。

任务2生产概况可视化
任务 2.1统计不同登记年份不同产品来源的特医食品获批量,绘制双折线图,并在报告中对结果进行必要分析。


任务2.2根据特医食品产品来源与适用人群类别绘制内层为饼图的旭日图,其中内层表示适用人群类别,外层表示不同适用人群类别的产品来源分布,并在报告中对结果进行必要分析。


任务2.3统计不同产品类别的特医食品获批量,按获批量进行降序排列,绘制柱状图,x轴为产品类别,y轴为获批量,并在报告中对结果进行必要分析。


任务2.4在同一坐标系中,分别用不同颜色绘制182款特医食品脂肪和蛋白质含量的频数分布直方图,并在报告中对结果进行必要分析。


任务 2.5 根据 182款特医食品的“适用人群”绘制词云图,并在报告中分析特医食品适用人群特征。
任务3特医食品推荐


在任务1和任务2的基础上,合理运用现有数据完成推荐任务。基于客户的需求描述(如年龄段、症状、特殊说明),从 182款特医食品中自动筛选出符合条件的产品选项,为客户提供个性化的特医食品推荐服务。实现方式不限,可以使用推荐算法或大型,但须在报告中详细描述实现过程、推荐逻辑以及推荐结果。

完整代码↓:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2241045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 的 ROS 2 操作系统安装与测试

引言 机器人操作系统(ROS, Robot Operating System)是一种广泛应用于机器人开发的开源框架,提供了丰富的库和工具,支持开发者快速构建、控制机器人并实现智能功能。 当前,ROS 2 的最新长期支持版本为 Humble Hawksbil…

SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间

SQL面试题——奔驰SQL面试题 我们的表大致如下 CREATE TABLE signal_log( vin STRING COMMENTvehicle frame id, signal_name STRING COMMENTfunction name, signal_value STRING COMMENT signal value , ts BIGINT COMMENTevent timestamp, dt STRING COMMENTformat yyyy-mm…

pytest执行用例时从conftest.py抛出ModuleNotFoundError:No module named ‘XXX‘异常的解决办法

网上各种各样的:1、关于_pycache_影响conftest的;2、目录路径的;3、配置环境的; 4、发现自己是powershell后,设置环境: $env:environment"local" 仍然报错的:5、最后发现是自己的 …

JAVA:探索 EasyExcel 的技术指南

1、简述 在 Java 开发中,Excel 文件的读写操作是一项常见的需求。阿里巴巴开源的 EasyExcel 提供了一种高效、简洁的解决方案,特别是在处理大规模数据时表现尤为突出。本文将详细介绍 EasyExcel 的优缺点、应用场景,并通过实例展示其基本用法…

Python自动化小技巧24——实现自动化输出模板表格报告

背景 很多人拿到数据excel文件,然后要写报告,做表格,要各种计算,各种排序,分组聚合,数据透视,然后合并单元格,添加边框,加粗,添加显示规则,添加数…

C# 通俗易懂的介绍基础知识(七)——栈Stack(从日常生活开始讲解)

目录 一、前言 二、栈是排列方式 三、栈的单词 四、程序中的栈 五、栈的方法 1.声明并初始化栈 2.往栈里放东西(学名:入栈) 3.从栈往外拿东西 (学名:出栈) 4.清空栈 5.遍历 Stack 6.获取Stack的长…

Vue全栈开发旅游网项目(10)-用户管理后端接口开发

1.异步用户登录\登出接口开发 1.设计公共响应数据类型 文件地址:utils/response404.py from django.http import JsonResponseclass BadRequestJsonResponse(JsonResponse):status_code 400def __init__(self, err_list, *args, **kwargs):data {"error_c…

PostgreSQL中如果有Left Join的时候索引怎么加

在PostgreSQL中,当你的查询包含多个LEFT JOIN和WHERE条件时,合理地添加索引可以显著提高查询性能。以下是一些具体的优化步骤和建议: 1. 分析查询 使用 EXPLAIN ANALYZE 命令分析你的查询,了解查询的执行计划,识别出连…

A027-基于Spring Boot的农事管理系统

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

Vue的基础使用

一、为什么要学习Vue 1.前端必备技能 2.岗位多,绝大互联网公司都在使用Vue 3.提高开发效率 4.高薪必备技能(Vue2Vue3) 二、什么是Vue 概念:Vue (读音 /vjuː/,类似于 view) 是一套 构建用户界面 的 渐进式 框架…

Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)

我们都知道时钟树综合在数字IC后端实现中的重要性。做clock tree主要有传统clock tree做法,H tree,Flexible H-tree,fishbone等做法。接下去小编将拿cadence官方的这份Innovus Flexible H-tree and Multi-Tap Clock Flow和对应的lab data来做…

【MySQL】MySQL数据库安装以及报错处理技巧

前言: 本节内容讲述在Ubuntu环境下怎么进行MySQL的安装。 以及一些安装过程中遇到的报错如何处理的问题。 ps:注意, 本篇文章不是图形化界面的MySQL安装教程哦。想要安装图形化界面的MySQL的友友们可以另寻资源了。 目录 更新软件包列表 安装M…

ISP——你可以从这里起步(二)

接上一篇,上一篇是原理篇,这一篇是实战篇,为了实现下面框图中的不完美ISP。 第一章 做一张RAW图自己用 不是所有的人都能获得raw图,即使获得了raw图也需要对应的sensor参数才能把它用起来,所以我找了一条野路子可以把…

CTF攻防世界小白刷题自学笔记14

fileclude,难度:1,方向:Web 题目来源:CTF 题目描述:好多file呀! 给一下题目链接:攻防世界Web方向新手模式第17题。 打开一看,这熟悉的味道,跟上一篇文章基本一摸一样的&#xff…

CTFHub每日练习

文章目录 技能树CTF Web信息泄露目录遍历PHPINFO备份文件下载网站源码bak文件vim缓存.DS_Store Git泄露Logstash index方法一方法二 密码口令弱口令 技能树 CTF Web 信息泄露 目录遍历 PHPINFO 备份文件下载 网站源码 当开发人员在线上环境中对源代码进行了备份操作&#x…

使用CNN进行验证码识别:深度学习与图像预处理教程

验证码(CAPTCHA)广泛用于区分人类和自动化程序(如机器人),通常由扭曲的字母、数字或符号组成。为了实现验证码的自动识别,深度学习尤其是卷积神经网络(CNN)非常有效。本文将带你一起…

Springboot采用jasypt加密配置

目录 前言 一、Jasypt简介 二、运用场景 三、整合Jasypt 2.1.环境配置 2.2.添加依赖 2.3.添加Jasypt配置 2.4.编写加/解密工具类 2.5.自定义加密属性前缀和后缀 2.6.防止密码泄露措施 2.61.自定义加密器 2.6.2通过环境变量指定加密盐值 总结 前言 在以往的多数项目中&#xff0…

讯飞、阿里云、腾讯云:Android 语音合成服务对比选择

在 移动端 接入语音合成方面,讯飞和腾讯云等都是优秀的选择,但各有其特点和优势。咱们的需求是需要支持普通话/英语/法语三种语言,以下是对各个平台的详细比较: 一、讯飞语音合成介绍 与语音听写相反,语音合成是将一段…

python爬虫获得店铺的所有商品

在编写Python爬虫以获取店铺的所有商品信息时,通常涉及到发送HTTP请求、解析响应内容以及处理API返回的数据。以下是一个详细的Python爬虫示例,用于获取店铺的商品信息。这个示例假设API返回的是JSON格式的数据,并且需要API密钥进行认证。 步…

java程序打包及执行 jar命令及运行jar文件

java程序打包及执行 jar命令及运行jar文件 打包命令: 安装完成jdk之后采用 jar命令进行打包 jar -cvfe ddd.jar -C bin/ddd.java 打包 ddd.java 文件 jar -cvfe dddd.jar -C . 注意 -C 后面的点. 表示当前目录下所有 如图: 运行jar 文件 java -class…